DSKSER page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
DSKSER page# 0002 next prev
45: BEGIN DSKSER ↔ SUBTTL DSKSER DISK SERVICE ROUTINE
46: ↑DEVBEG←←.
47:
48: DEFINE IOPCON <DIPCON>
49:
50:
51:
52:
53:
54:
55:
56: TRIES←←1
57: ERRBOX←←1
58: BUFIOW: XWD -BLKWDS,SYSBUF
59: UFDEXT←←'UFD'
60:
61: ↑MFDENT: ' 1 1'
62: MFDEXT: 'UFD '
63: MFDPRO: 155740,,0
64: MFDLOC: 1
65: ↑BAND0: 0
66: ↑SATLOC: 0
67:
68: UNAM←←0
69: UEXT←←1
70: UPRO←←2
71: UPPN←←3
72:
73: DWRITE←←100
74: IOPDCH←←IOPCHN
75: MSGPPN: ' 2 2'
DSKSER page# 0003 next prev
77:
78:
79:
80:
81: ↑GOBIT←←400000
82: ↑READB←←200000
83: ↑WRITEB←←100000
84: ↑ALTERB←←40000
85: RENAMB←←20000
86: DELETB←←10000
87: NTRUFD←←4000
88: PNTDIF←←2000
89: IOSET←←400
90: LOSBIG←←200
91: SATOP←←100
92: HDRDIF←←4
93: ↑DSKFGS←←SATOP+GOBIT
94:
95:
96:
97: DMPBIT←←400
98: GARBIT←←200
99:
100:
101:
102:
103: ↑DSKBUF←←17
104: ↑DSKCNT←←20
105:
106: JRST CLRDDB
107: JRST SETDDB
108: JRST DSKINI
109: JRST DHUNG
110: ↑DSKDSP:JRST DRELES
111: JRST DCLOSO
112: JRST DBUFO
113: JRST DBUFI
114: JRST DENTER
115: JRST DLOOK
116: JRST DDMPO
117: JRST DDMPI
118: JRST DSETO
119: JRST DSETI
120: JRST DGETF
121: JRST DRENAM
122: JRST DCLOSI
123: POPJ P,
124: JRST DGETW
DSKSER page# 0004 next prev
126:
127:
128: DISKUP: CONO IBM,CLRCHL
129: MOVEI TAC1,2
130: DSKUP2: CONO IBM,1
131: CONO IBM,2
132: MOVEI TAC,10000
133: SOJG TAC,.
134: SOJGE TAC1,DSKUP2
135: CONO PMP,460010!DSKCHN
136: POPJ P,
137:
138:
139: DHUNG: PUSHJ P,DISKUP
140: CONO PMP,10
141: DATAO IBM,NOPCMD
142: MOVEI TAC,100000
143: CONSO PMP,460000
144: SOJG TAC,.-1
145: CONI PMP,TAC
146: TRC TAC,600
147: TRCN TAC,600
148: JRST OKNOW
149: PUSHACS
150: PUSHJ P,DISDATE
151: PUSHJ P,DISMES
152: ASCIZ /RESET DISK. THEN PUSH CONTINUE.
153: /
154: SETOM DISFLAG
155: PUSHJ P,DISFLUSH
156: POPACS
157: HALT .+1
158: PUSHJ P,DISKUP
159: OKNOW: CONO PI,PIOFF
160: SETOM HNGFLG
161: CONO PMP,660010!DSKCHN
162: CONO PI,PION
163: POPJ P,
DSKSER page# 0005 next prev
165:
166:
167:
168: ↑SETDDB:
169: PUSHJ P,GCOR1
170: PUSH P,TAC1
171: LDB TAC1,PUNIT
172: SKIPE TAC1
173: AOS UDPCNT-1(TAC1)
174: MOVE TAC1,DKDBML(TAC1)
175: HRRI DDB,DDBSKW(TAC)
176: HRLI TAC,-DDBSKW(TAC1)
177: BLT TAC,DMPBUF(DDB)
178: HRLM DDB,DEVSER(TAC1)
179: POP P,TAC1
180: SETZM DEVLOG(DDB)
181: SETZM UFDPPN(DDB)
182: SETZM UFDADR(DDB)
183: JRST DCLSDD
184:
185: ↑CLRDDB:
186: PUSHJ P,DCLSDD
187: SETZB IOS,DEVIOS(DDB)
188: LDB TAC1,PUNIT
189: JUMPE TAC1,CLRDD3
190: SOSE TAC,UDPCNT-1(TAC1)
191: JRST CLRD99
192:
193:
194: SETOM UDPOWN-1(TAC1)
195: MOVE AC3,DKDBML(TAC1)
196: MOVSI TAC,DVDSK
197: IORM TAC,DEVMOD(AC3)
198: MOVEI TAC,DSKDSP
199: HRRM TAC,DEVSER(AC3)
200: SKIPE TAC,SATADR(TAC1)
201: PUSHJ P,RCOR1
202: SETZB TAC,SATADR(TAC1)
203: TROA TAC,DMES1
204: CLRD99: MOVEI TAC,DMES2
205: PUSH P,DDB
206: PUSH P,TAC
207: CONSO PI,400
208: JRST CLRDD1
209: PUSHJ P,TTYFND
210: PUSH P,-1(P)
211: PUSHJ P,ERNAM
212: POP P,(P)
213: POP P,TAC
214: PUSHJ P,CONMES
215: JRST CLRDD2
216:
217: DMES1: ASCIZ / MAY BE UNLOADED
218: /
219: DMES2: ASCIZ / STILL IN USE - DON'T UNLOAD
220: /
221:
222: CLRDD1: SKIPN UDPCNT-1(TAC1)
223: JRST CLRD19
224: MOVE TAC,DKDBML(TAC1)
225: CLRD11: HLRZ TAC,DEVSER(TAC)
226: JUMPE TAC,CLRD19
227: MOVE TAC1,DEVNAM(TAC)
228: CAME TAC1,DEVNAM(DDB)
229: JRST CLRD19
230: LDB TAC1,[POINT 6,DEVCHR(TAC),5]
231: CAIE TAC,(DDB)
232: CAME TAC1,JOB(PID)
233: JRST CLRD11
234: POP P,TAC
235: JRST CLRDD2
236:
237: CLRD19: JUMPE PROG,CLRDD2
238: PUSHJ P,TTYFUW
239: PUSH P,-1(P)
240: PUSHJ P,ERNAM
241: POP P,(P)
242: POP P,TAC
243: PUSHJ P,CONMES
244: PUSHJ P,TYPGO
245: CLRDD2: POP P,DDB
246: LDB TAC1,PUNIT
247: CLRDD3: MOVE TAC,DKDBML(TAC1)
248: CLRDD4: MOVEI TAC1,(TAC)
249: HLRZ TAC,DEVSER(TAC1)
250: JUMPE TAC,CPOPJ
251: CAIE TAC,(DDB)
252: JRST CLRDD4
253: MOVE DDB,DEVSER(TAC)
254: HLLM DDB,DEVSER(TAC1)
255: SUBI TAC,DDBSKW
256: JRST RCOR1
257:
258:
259:
260: GETCOR: PUSHJ P,GCOR1
261: MOVSM TAC,DMPBUF(DDB)
262: POPJ P,
263:
264: GCOR1: MOVEI AC3,DDBSIZ
265: PUSHJ P,FSGET
266: JRST GCOR2
267: MOVEI TAC,(AC1)
268: POPJ P,
269:
270: GCOR2: SUB P,[XWD 4,4]
271: JRST DLYCM1
272:
273: RTNCOR: HLRZ TAC,DMPBUF(DDB)
274: SETZM DMPBUF(DDB)
275: JUMPE TAC,CPOPJ
276: RCOR1: HRRZ AC1,TAC
277: JRST FSGIVE
DSKSER page# 0006 next prev
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364: DDOIT: PUSHJ P,QENTER
365:
366: XWSYNC: MOVE TAC,[XWD DEVSBB,IOACT]
367: TDNE TAC,DEVIOS(DDB)
368: JRST .-1
369: POPJ P,
DSKSER page# 0007 next prev
371:
372:
373:
374:
375:
376:
377:
378:
379:
380: ↑DSKTM1:
381: MOVE TAC,TIME
382: IDIVI TAC,=3600
383: HRRZ TAC1,THSDAT
384: DPB TAC,[POINT 11,TAC1,23]
385: LDB TAC,[POINT 3,THSDAT,35-12]
386: POPJ P,
387:
388:
389: ↑DSKSTP:
390: PUSHJ P,DQINI
391: CONO PI,2202
392: OSAT: MOVEI DDB,DSKDDB
393: PUSHJ P,CUSATO
394: JRST XWSYNC
395:
396: ISAT: MOVEI DDB,DSKDDB
397: MOVEI DAT,SATIN
398: PUSHJ P,NENTER
399: JRST XWSYNC
400:
401:
402:
403: DSKINI: PUSHJ P,DQINI
404: SETZM CUSLOC
405: PUSHJ P,ACISAT
406: MOVE TAC,DSKDDB+DEVIOS
407: TRNE TAC,IODERR!IODTER
408: JRST NOSAT
409: MOVEI DDB,UDP1DD
410: HRLM DDB,DSKDDB+DEVSER
411: SETZM SATADR+1
412: IFG UPACKS-1,< MOVE TAC,[SATADR+1,,SATADR+2]
413: BLT TAC,SATADR+UPACKS>
414: SETOM UDPOWN
415: IFG UPACKS-1,< MOVE TAC,[UDPOWN,,UDPOWN+1]
416: BLT TAC,UDPOWN+UPACKS-1>
417: SETZM UDPCNT
418: IFG UPACKS-1,< MOVE TAC,[UDPCNT,,UDPCNT+1]
419: BLT TAC,SATMOD+UPACKS>
420:
421: MOVEI DDB,DSKDDB
422: SKIPE FBACT
423: POPJ P,
424: PASCHK: MOVEI DDB,CAT(CAT(UDP,\<UPACKS>),DD)
425: MOVEI TAC,ASSCON!ASSPRG
426: IORM TAC,DEVMOD(DDB)
427: MOVE TAC,['*SWAP*']
428: MOVEM TAC,DEVLOG(DDB)
429: SETZB TAC,DEVIOS(DDB)
430: DPB TAC,PJOBN
431: SETZM UDPOWN-1+UPACKS
432: SETZM SWPDDB
433: MOVEI DAT,PASSIN
434: PUSHJ P,NENTER
435: PUSHJ P,XWSYNC
436: MOVE TAC,DEVIOS(DDB)
437: TRNE TAC,IODERR!IODTER!IOIMPM
438: JRST PASERR
439: MOVE TAC,['PASS ']
440: CAMN TAC,DSKDAT(DDB)
441: CAME TAC,DSKDAT+1(DDB)
442: JRST PASOK
443: SKIPE TAC,DSKDAT+2(DDB)
444: CAMN TAC,['*SWAP*']
445: JRST PASOK
446: JRST PAKERR
447: PASOK: MOVEI DAT,PASOUT
448: PUSHJ P,NENTER
449: PUSHJ P,XWSYNC
450: MOVE TAC,DEVIOS(DDB)
451: TRNE TAC,IODERR!IODTER!IOIMPM
452: JRST PASERR
453: MOVEM DDB,SWPDDB
454: MOVEI DDB,DSKDDB
455: POPJ P,
456:
457: DEFINE SWPMES $(XXX) < ASCIZ /SWAPPING DRIVE (UDP$XXX$) / >
458:
459: PAKERR: PUSHACS
460: PUSHJ P,DISMES
461: SWPMES (\<UPACKS>)
462: PUSHJ P,DISMES
463: ASCIZ /WRONG PACK MOUNTED.
464: /
465: PASTRY: PUSHJ P,DISMES
466: ASCIZ /FIX IT. PUSH CONTINUE TO TRY AGAIN
467: /
468: SETOM DISFLAG
469: PUSHJ P,DISFLUSH
470: POPACS
471: HALT PASCHK
472:
473:
474: PASERR: PUSHACS
475: PUSH P,TAC
476: PUSHJ P,DISMES
477: SWPMES (\<UPACKS>)
478: POP P,TAC
479: TRNN TAC,IOIMPM
480: JRST PASIOE
481: PUSHJ P,DISMES
482: ASCIZ /OFF LINE OR WRITE LOCKED
483: /
484: JRST PASTRY
485:
486: PASIOE: PUSHJ P,DISMES
487: ASCIZ /IO ERROR
488: /
489: JRST PASTRY
490:
491: NOSAT: PUSHACS
492: MOVE TAC,[JRST AUTOLOAD]
493: MOVEM TAC,SYSDSP
494: MOVEM TAC,SYSDSP+2
495: MOVE TAC,[XWD SYSDSP+2,SYSDSP+3]
496: BLT TAC,SYSDSP+7
497: MOVE TAC,UPTIME
498: MOVEM TAC,LASTRESTART
499: PUSHJ P,DISDATE
500: PUSHJ P,DISMES
501: ASCIZ /FAILED TO GET SAT TABLE READ IN. CHECK DISK, THEN RELOAD.
502: /
503: SETOM DISFLAG
504: PUSHJ P,DISFLUSH
505: POPACS
506: HALT AUTOLOAD
507:
508: DQINI: SETZM QBEGIN
509: MOVSI TAC,QUBEG
510: HLRZM TAC,MIPTR+1
511: HLRZM TAC,MOPTR+1
512: MOVSI TAC,QBEGIN
513: HLRZM TAC,MIPTR
514: HLRZM TAC,MOPTR
515: SETZM DQCNT
516: HRRI TAC,QBEGIN+1
517: BLT TAC,QUEND
518: PUSHJ P,DISKUP
519:
520: IJOB: SETZM DFBUSY
521: SETZM SQREQ
522: HLLZS IOPCON
523: SETZM DXB
524: SETZM DSKEDD
525: SETZM ERRBIT
526: SETZM DSKERB
527: SETZM BKIN
528: POPJ P,
529:
530: ACISAT: CONO PI,PION
531: SKIPN SATDIR
532: JRST OSAT
533: MOVE TAC,SATID+SATTAB
534: MOVEM TAC,SATID1
535: MOVEM TAC,SATID2
536: PUSHJ P,ISAT
537: MOVE TAC,SATID+SATTAB
538: MOVEM TAC,SATID1
539: MOVEM TAC,SATID2
540: SETZM SATDIR
541:
542:
543: ACISTT: LDB AC3,PUNIT
544: MOVE TAC,LSTBTB(AC3)
545: ADDI TAC,43
546: IDIVI TAC,44
547: IMULI TAC,44
548: MOVE AC3,SATADR(AC3)
549: MOVE TAC1,[POINT 1,SATBIT(AC3)]
550: SETZB AC1,BADCHK(AC3)
551: ILDB AC2,TAC1
552: ADDI AC1,(AC2)
553: SOJGE TAC,.-2
554: MOVEM AC1,DSKUSE(AC3)
555: SKIPG AC2,BADCNT(AC3)
556: POPJ P,
557: CAILE AC2,BADMAX
558: MOVEI AC2,BADMAX
559: HRLOI AC2,-1(AC2)
560: EQVI AC2,BADTRK(AC3)
561: MRKITB: MOVE TAC,(AC2)
562: ADDM TAC,BADCHK(AC3)
563: PUSHJ P,MRKBLK
564: AOBJN AC2,MRKITB
565: POPJ P,
DSKSER page# 0008 next prev
567:
568:
569:
570:
571: DBUFI: TLNN IOS,READB!WRITEB!ALTERB
572: JRST ENOLUK
573: TRNE IOS,IODERR!IODTER
574: POPJ P,
575: TLNE IOS,LOSBIG
576: JRST EGARB
577: MOVSI IOS,IO
578: ANDCAB IOS,DEVIOS(DDB)
579: JSP AC1,TSTEOF
580: JRST DIEOF
581: MOVEI DAT,DIBUFI
582: PUSHJ P,QENTER
583: POPJ P,
584:
585: TSTEOF: MOVE TAC,USETP(DDB)
586: SUBI TAC,1
587: ASH TAC,RECWSH
588: CAMGE TAC,FILLNG(DDB)
589: JRST 1(AC1)
590: JRST (AC1)
591:
592:
593:
594: DIBUFI: PUSHJ P,GETBLK
595: JUMPE TAC,SETLOS
596: PUSHJ P,AUDCHK
597:
598: DIBFI1: MOVE TAC,USETP(DDB)
599: SUB TAC,DGRP1R(DDB)
600: IDIVI TAC,RCPBLK
601: ASH TAC1,RECWSH
602: HRRZ TAC,DEVIAD(DDB)
603: HLRZ DAT,PROG
604: CAIG TAC,(DAT)
605: JRST DIBFI3
606: LDB DAT,PSEGN
607: HRRZ DAT,JBTADR(DAT)
608: ADDI TAC,-400000(DAT)
609: JRST DIBFI4
610:
611: DIBFI3: ADDI TAC,(PROG)
612: DIBFI4: HRLI DAT,SYSDTA(TAC1)
613: HRRI DAT,2(TAC)
614: BLT DAT,RECSIZ+1(TAC)
615: AOS TAC1,USETP(DDB)
616: SUBI TAC1,1
617: ASH TAC1,RECWSH
618: SUB TAC1,FILLNG(DDB)
619: MOVEI DAT,RECSIZ
620: JUMPL TAC1,DIBFI2
621: TLO IOS,IOEND
622: SUB DAT,TAC1
623: DIBFI2: HRRM DAT,1(TAC)
624: PUSHJ P,ADVBFF
625: POPJ P,
626: TLNE IOS,IOEND
627: POPJ P,
628: MOVE TAC,USETP(DDB)
629: SUB TAC,DGRP1R(DDB)
630: IDIVI TAC,RCPBLK
631: JUMPN TAC1,DIBFI1
632: POPJ P,
633:
634: DIEOF: TLO IOS,IOEND
635: JRST DSIOS
636:
637:
638:
639: DBUFO: TLNN IOS,WRITEB!ALTERB
640: JRST ENOENT
641: MOVSI IOS,IO
642: IORB IOS,DEVIOS(DDB)
643: TLNE DDB,OCLOSB
644: JRST DBUFO1
645: DBUFOA: TRNE IOS,IODERR!IODTER
646: POPJ P,
647: TLNE IOS,LOSBIG
648: JRST EGARB
649: HLR TAC,DEVBUF(DDB)
650: XCTR XR,[HRR TAC,(TAC)]
651: XCTR XR,[SKIPL TAC1,(TAC)]
652: JRST DBFOGO
653: TRNN IOS,IOACT
654: PUSHJ P,DBUFO1
655: PUSHJ P,WSYNC
656: JRST DBUFOA
657:
658: DBFOGO: XCTR XR,[SKIPGE (TAC1)]
659: TRNE IOS,IOACT
660: POPJ P,
661:
662: DBUFO1: PUSHJ P,MAKBLK
663: MOVEI DAT,DIBUFO
664: PUSHJ P,QENTER
665: POPJ P,
666:
667:
668:
669: DIBUFO: MOVE TAC,USETP(DDB)
670: MOVEM TAC,DSKFAD(DDB)
671: SUB TAC,DGRP1R(DDB)
672: IDIVI TAC,RCPBLK
673: ASH TAC1,RECWSH
674: MOVEI TAC,SYSDTA(TAC1)
675: MOVEM TAC,CORFAD(DDB)
676: MOVEM TAC,CORLAD(DDB)
677:
678: DIBFO1: HRRZ TAC,DEVOAD(DDB)
679: HLRZ TAC1,PROG
680: CAIG TAC,(TAC1)
681: JRST DIBFO2
682: LDB TAC1,PSEGN
683: HRRZ TAC1,JBTADR(TAC1)
684: ADDI TAC,-400000+2(TAC1)
685: JRST DIBFO3
686:
687: DIBFO2: ADDI TAC,2(PROG)
688: DIBFO3: SKIPG AC1,-1(TAC)
689: JRST DIBFO4
690: MOVSS TAC
691: HRR TAC,CORLAD(DDB)
692: MOVEI TAC1,RECSIZ(TAC)
693: MOVEM TAC1,CORLAD(DDB)
694: BLT TAC,-1(TAC1)
695: AOS USETP(DDB)
696: PUSHJ P,ADVBFE
697: JRST DIBOFT
698: MOVE TAC,USETP(DDB)
699: SUB TAC,DGRP1R(DDB)
700: IDIVI TAC,RCPBLK
701: JUMPN TAC1,DIBFO1
702:
703: DIBOFT: MOVE TAC,CORFAD(DDB)
704: CAML TAC,CORLAD(DDB)
705: POPJ P,
706: MOVE TAC,USETP(DDB)
707: SUBI TAC,1+1
708: ASH TAC,RECWSH
709: CAILE AC1,RECSIZ
710: MOVEI AC1,RECSIZ
711: ADDI TAC,(AC1)
712: CAMG TAC,FILLNG(DDB)
713: JRST DIBOFW
714: MOVEM TAC,FILLNG(DDB)
715:
716:
717:
718: TLO IOS,PNTDIF!HDRDIF
719: DIBOFW: MOVE TAC,CORFAD(DDB)
720: CAIN TAC,SYSDTA
721: TLNN IOS,PNTDIF
722: JRST DIBOFN
723: PUSHJ P,AUDINF
724: HRLI TAC,DSKDAT(DDB)
725: HRRI TAC,SYSBUF
726: BLT TAC,SYSDTA-1
727:
728: MOVE TAC,DSKFAD(DDB)
729: PUSHJ P,LR2BLK
730: JUMPE TAC,SETLOS
731: PUSHJ P,BK2SEC
732: LDB AC3,PUNIT
733: ADD TAC,BFSETS(AC3)
734: MOVEM TAC,TFRSEC(DDB)
735: MOVE TAC,CORFAD(DDB)
736: SUB TAC,CORLAD(DDB)
737: ADD TAC,[SYSBUF,,-40]
738: MOVSM TAC,TFRIOW(DDB)
739: JRST RERITE
740:
741: DIBOFN: MOVE TAC,CORFAD(DDB)
742: SUB TAC,CORLAD(DDB)
743: HRL TAC,CORFAD(DDB)
744: MOVSM TAC,TFRIOW(DDB)
745: MOVE TAC,DSKFAD(DDB)
746: PUSHJ P,LR2BLK
747: JUMPE TAC,SETLOS
748: PUSHJ P,BKMAP
749: LDB AC1,PUNIT
750: ADD TAC,BFSETS(AC1)
751: MOVEM TAC,TFRSEC(DDB)
752:
753: RERITE: MOVEI TAC,DWRITE!IOPCHN
754: MOVSM TAC,TFRCTL(DDB)
755: JRST TSTART
756:
757: SETLOS: TDO IOS,[LOSBIG!IOEND,,IODEND]
758: JRST DSIOS
759:
760: DIBFO4: PUSHJ P,ADVBFE
761: JRST DIBOFT
762: JRST DIBFO1
DSKSER page# 0009 next prev
764:
765:
766:
767:
768:
769:
770: ↑DMPCMD:
771: MOVEI AC1,JOBPFI
772: MOVE TAC,UUOPC(J)
773: TLNN TAC,USRMOD
774: MOVEI AC1,JOBSAV
775: HLRZ AC2,PROG
776: LDB AC3,PSEGN
777: JUMPE AC3,DMPGET
778: HLRZ AC3,JBTADR(AC3)
779: ADDI AC3,400000
780:
781: DMPGET:
782: DMPGT1: XCTR XR,[SKIPN TAC1,(UUO)]
783: JRST TPOPJ
784: DMPGT2: HLRE TAC,TAC1
785: ANDI TAC1,-1
786: JUMPE TAC,DMPTCH
787: ADDI TAC1,1
788: CAIGE TAC1,(AC1)
789: JSP DAT,ADRERR
790: PUSH P,TAC1
791: HRRO TAC,TAC
792: SUB TAC1,TAC
793: CAIG TAC1,1(AC2)
794: JRST T1POPJ
795: CAIG TAC1,1(AC3)
796: TRNN TAC1,400000
797: JSP DAT,ADRERR
798: T1POPJ: POP P,TAC1
799: POPJ P,
800:
801: DMPTCH: HRR UUO,TAC1
802: CAIG TAC1,(AC1)
803: JSP DAT,ADRERR
804: CAIG TAC1,(AC2)
805: JRST DMPGET
806: CAIG TAC1,1(AC3)
807: TRNN TAC1,400000
808: JSP DAT,ADRERR
809: JRST DMPGET
810:
811: DDCALC: MOVE AC1,USETP(DDB)
812: ADDI AC1,RCPBLK-1
813: MOVEI DAT,RCPBLK
814: IDIVM AC1,DAT
815: IMULI DAT,RCPBLK
816: LSH DAT,RECWSH
817: POPJ P,
DSKSER page# 0010 next prev
819:
820:
821: DDMPI: TLNN IOS,READB!WRITEB!ALTERB
822: JRST ENOLUK
823: JSP AC1,TSTEOF
824: JRST DDMIEF
825: TLZ IOS,IO
826: TLO IOS,GOBIT
827: MOVEM IOS,DEVIOS(DDB)
828: PUSHJ P,DDICOM
829:
830: DDXIT: PUSHJ P,RTNCOR
831: TRNN IOS,IODERR!IODTER
832: TLNN IOS,LOSBIG
833: JRST DPOPJ
834: JRST EGARB
835:
836: DDICOM: PUSHJ P,GETCOR
837: PUSHJ P,GETRET
838: JRST SETLOS
839: DDICO2: PUSHJ P,DMPCMD
840: MOVEM TAC1,CORFAD(DDB)
841: MOVE AC1,USETP(DDB)
842: SUBI AC1,1
843: ASH AC1,RECWSH
844: MOVEM AC1,DSKFAD(DDB)
845: SUB AC1,TAC
846: CAMG AC1,FILLNG(DDB)
847: JRST DDICO3
848: TLO IOS,IOEND
849: MOVE AC1,FILLNG(DDB)
850: DDICO3: MOVEM AC1,DSKLAD(DDB)
851:
852: DDIC0: HLRS DMPBUF(DDB)
853: DDIC1: PUSHJ P,DDCALC
854: CAMLE DAT,DSKLAD(DDB)
855: MOVE DAT,DSKLAD(DDB)
856: SUB DAT,DSKFAD(DDB)
857: MOVN TAC,DAT
858: HRR TAC1,CORFAD(DDB)
859: HLRZ TEM,PROG
860: CAIG TAC1,(TEM)
861: JRST DDIC2
862: LDB TEM,PSEGN
863: HRRZ TEM,JBTADR(TEM)
864: TRZ TAC1,400000
865: ADDI TAC1,(TEM)
866: JRST DDIC3
867:
868: DDIC2: ADDI TAC1,(PROG)
869: DDIC3: HRL TAC1,TAC
870: AOS TEM,DMPBUF(DDB)
871: MOVEM TAC1,-1(TEM)
872: ADDM DAT,CORFAD(DDB)
873: ADDB DAT,DSKFAD(DDB)
874: ADDI DAT,RECSIZ+RECSIZ-1
875: ASH DAT,-RECWSH
876: MOVE TAC,USETP(DDB)
877: MOVEM DAT,USETP(DDB)
878: PUSHJ P,LR2BLK
879: JUMPE TAC,SETLOS
880: PUSHJ P,BKMAP
881: MOVEM TAC,(TEM)
882: AOS TEM,DMPBUF(DDB)
883: HLRZ TAC,TEM
884: CAIGE TAC,-100(TEM)
885: JRST EDMPLS
886: MOVE TAC,DSKFAD(DDB)
887: CAME TAC,DSKLAD(DDB)
888: PUSHJ P,TSTRET
889: JRST DDIGO
890: JRST DDIC1
891:
892: DDIGO: MOVEI DAT,DIDMPI
893: PUSHJ P,QEWAIT
894: TRNE IOS,IODERR!IODTER
895: POPJ P,
896: MOVE TAC,DSKFAD(DDB)
897: CAME TAC,DSKLAD(DDB)
898: JRST DDIC0
899: TLNN IOS,IOEND
900: AOJA UUO,DDICO2
901:
902: DDMIEF: IOR IOS,[XWD IOEND,IODEND]
903: JRST DSIOS
904:
905:
906:
907: DIDMPI: MOVE TEM,DMPBUF(DDB)
908: HLRS TEM
909: MOVEI TAC1,IOPCHN
910: MOVSM TAC1,TFRCTL(DDB)
911: LDB AC1,PUNIT
912: DIDMI1: MOVE TAC1,(TEM)
913: MOVEM TAC1,TFRIOW(DDB)
914: MOVE TAC1,1(TEM)
915: ADD TAC1,BFSETS(AC1)
916: MOVEM TAC1,TFRSEC(DDB)
917: PUSHJ P,TSTART
918: ADDI TEM,2
919: CAMGE TEM,DMPBUF(DDB)
920: JRST DIDMI1
921:
922: DIDMI2: MOVE TAC,DSKFAD(DDB)
923: CAMN TAC,DSKLAD(DDB)
924: POPJ P,
925: SKIPN TAC,DNXTGP(DDB)
926: JRST DMIEF1
927: PUSHJ P,BK2SEC
928: LDB TAC1,PUNIT
929: ADD TAC,BFSETS(TAC1)
930: MOVEM TAC,TFRSEC(DDB)
931: MOVEI TAC,DSKDAT(DDB)
932: HRLI TAC,-SECSIZ
933: MOVEM TAC,TFRIOW(DDB)
934: PUSHJ P,TSTART
935: PUSHJ P,AUDCHK
936: POPJ P,
937:
938: DMIEF1: TLO IOS,IOEND
939: POPJ P,
DSKSER page# 0011 next prev
941:
942:
943: DDMPO: TLNN IOS,WRITEB!ALTERB
944: JRST ENOENT
945: TLO IOS,IO!GOBIT
946: MOVEM IOS,DEVIOS(DDB)
947: PUSHJ P,DDOCOM
948: JRST DDXIT
949:
950: DDOCOM: PUSHJ P,GETCOR
951: DDOCO2: PUSHJ P,DMPCMD
952: MOVEM TAC1,CORFAD(DDB)
953: MOVE AC1,USETP(DDB)
954: SUBI AC1,1
955: ASH AC1,RECWSH
956: MOVEM AC1,DSKFAD(DDB)
957: SUB AC1,TAC
958: MOVEM AC1,DSKLAD(DDB)
959: CAMG AC1,FILLNG(DDB)
960: JRST DDOC0
961: MOVEM AC1,FILLNG(DDB)
962: TLO IOS,HDRDIF
963: MOVEM IOS,DEVIOS(DDB)
964:
965: DDOC0: HLRS DMPBUF(DDB)
966: DDOC1: PUSHJ P,MAKBLK
967: JUMPE TAC,SETLOS
968: PUSHJ P,DDCALC
969: CAMLE DAT,DSKLAD(DDB)
970: MOVE DAT,DSKLAD(DDB)
971: SUB DAT,DSKFAD(DDB)
972: MOVN TAC,DAT
973: HRR TAC1,CORFAD(DDB)
974: HRL TAC1,TAC
975: AOS TEM,DMPBUF(DDB)
976: MOVEM TAC1,-1(TEM)
977: ADDM DAT,CORFAD(DDB)
978: ADDB DAT,DSKFAD(DDB)
979: ADDI DAT,RECSIZ+RECSIZ-1
980: ASH DAT,-RECWSH
981: MOVE TAC,USETP(DDB)
982: MOVEM DAT,USETP(DDB)
983: PUSHJ P,LR2BLK
984: JUMPE TAC,SETLOS
985: PUSHJ P,BKMAP
986: MOVEM TAC,(TEM)
987: AOS TEM,DMPBUF(DDB)
988: HLRZ TAC,TEM
989: CAIGE TAC,-100(TEM)
990: JRST EDMPLS
991: MOVE TAC,DSKFAD(DDB)
992: CAMN TAC,DSKLAD(DDB)
993: JRST DDMPO4
994: PUSHJ P,TSTRET
995: JRST DDMPO3
996: JRST DDOC1
997:
998: DDMPO3: SKIPE DNXTGP(DDB)
999: JRST DDMPO4
1000: PUSHJ P,ASNGRP
1001:
1002: DDMPO4: MOVEI DAT,DIDMPO
1003: PUSHJ P,QEWAIT
1004: TRNE IOS,IODERR!IODTER
1005: POPJ P,
1006: MOVE TAC,DSKFAD(DDB)
1007: CAME TAC,DSKLAD(DDB)
1008: JRST DDOC0
1009: AOJA UUO,DDOCO2
1010:
1011:
1012:
1013: DIDMPO: TLZE IOS,PNTDIF
1014: PUSHJ P,SPREAD
1015: MOVE TEM,DMPBUF(DDB)
1016: HLRS TEM
1017: MOVEI TAC1,DWRITE!IOPCHN
1018: MOVSM TAC1,TFRCTL(DDB)
1019: DIDMO1: MOVE TAC1,(TEM)
1020: HLRZ DAT,PROG
1021: CAIL DAT,(TAC1)
1022: JRST DIDMO2
1023: LDB DAT,PSEGN
1024: TRZ TAC1,400000
1025: HRRZ DAT,JBTADR(DAT)
1026: ADDI TAC1,(DAT)
1027: JRST DIDMO3
1028:
1029: DIDMO2: ADDI TAC1,(PROG)
1030: DIDMO3: MOVEM TAC1,TFRIOW(DDB)
1031: MOVE TAC1,1(TEM)
1032: LDB DAT,PUNIT
1033: ADD TAC1,BFSETS(DAT)
1034: MOVEM TAC1,TFRSEC(DDB)
1035: PUSHJ P,TSTART
1036: ADDI TEM,2
1037: CAMGE TEM,DMPBUF(DDB)
1038: JRST DIDMO1
1039: POPJ P,
DSKSER page# 0012 next prev
1041:
1042:
1043:
1044: DCLOSI: TLNE IOS,IOSET
1045: JRST DSIOS
1046: TLZE IOS,READB
1047: TLZN IOS,DELETB
1048: JRST DSIOS
1049: JSP AC1,ACCESS
1050: JRST DSIOS
1051: JFCL
1052: PUSHJ P,GOSET
1053: MOVE TAC,FILLOC(DDB)
1054: PUSHJ P,DELETE
1055: PUSHJ P,CUSATO
1056: PUSHJ P,WSYNC
1057: JRST DPOPJ
1058:
1059:
1060:
1061:
1062: DCLOSO: TLNN IOS,WRITEB!ALTERB
1063: JRST DCLSDD
1064: PUSHJ P,GOSET
1065: TLNN DDB,OUTBFB+OUTPB
1066: JRST DCLSO3
1067: LDB TAC,PIOMOD
1068: CAIGE TAC,DR
1069: PUSHJ P,OUT
1070: DCLSO3: PUSHJ P,WAIT1
1071: TLNE IOS,IOSET
1072: JRST DPOPJ
1073: MOVEI DAT,DCLOI
1074: TLNE IOS,PNTDIF!HDRDIF
1075: PUSHJ P,NEWAIT
1076: PUSHJ P,RTNCOR
1077:
1078:
1079:
1080: DCLSO1: TLNN IOS,NTRUFD
1081: JRST DCLSO2
1082: DCLSO9: TLZ IOS,DELETB
1083: MOVSI AC2,DELETB
1084: JSP AC1,ACCESS
1085: JRST DCLSOR
1086: JRST ELOSE
1087: PUSHJ P,UFDSRC
1088: MOVEI DAT,DRAUFD
1089: PUSHJ P,QEWAIT
1090: TLZE IOS,DELETB
1091: JRST DCLSO2
1092: DCLSOC: MOVE TAC,SRCLOC(DDB)
1093: DCLSOD: PUSHJ P,DELETE
1094: LDB TAC,PUNIT
1095: TRNE IOS,IOIMPM!IODERR
1096: JUMPN TAC,SATGLZ
1097: DCLSO2: PUSHJ P,CUSATO
1098: PUSHJ P,WSYNC
1099:
1100: DCLSDD: TDNE IOS,[XWD DEVSBB,IOACT]
1101: SETZB IOS,DEVIOS(DDB)
1102: MOVSI TAC,DEVIBF
1103: ANDCAM TAC,DEVCMR(DDB)
1104: PUSHJ P,RTNCOR
1105: SETZM ACCNAM(DDB)
1106: HRLI TAC,ACCNAM(DDB)
1107: HRRI TAC,ACCNAM+1(DDB)
1108: BLT TAC,DDEND-1(DDB)
1109: ANDI IOS,GARBIT!DMPBIT!17
1110: JRST DPOPJ
1111:
1112: DCLSOR: IORM AC2,DEVIOS(TAC)
1113: TLO IOS,DELETB
1114: JRST ACCES1
1115:
1116:
1117:
1118:
1119:
1120: DCLOI: TLZN IOS,HDRDIF
1121: JRST DCLSO5
1122: MOVEI TAC,1
1123: CAMN TAC,DGRP1R(DDB)
1124: JRST DCLSO5
1125:
1126: PUSHJ P,DCLSO5
1127: MOVEI TAC,1
1128: MOVEM TAC,USETP(DDB)
1129: PUSHJ P,GGRETI
1130: DCLSO5: PUSHJ P,AUDINF
1131: DCLSO4: PUSHJ P,SPREAD
1132: TLNE IOS,HDRDIF
1133: JRST DCLOI
1134: POPJ P,
DSKSER page# 0013 next prev
1136:
1137:
1138: DRELES: PUSHJ P,WAIT1
1139: PUSHJ P,DCLOSI
1140: TLNN IOS,WRITEB
1141: JRST DCLSDD
1142: PUSHJ P,GOSET
1143: MOVEI DAT,DCLOI
1144: PUSHJ P,QEWAIT
1145: MOVE TAC,FILLOC(DDB)
1146: TLNE IOS,NTRUFD
1147: JRST DCLSOD
1148: PUSHJ P,UFDSRC
1149: SETZM ACCNAM(DDB)
1150: MOVEI DAT,DRAUFD
1151: PUSHJ P,QEWAIT
1152: JRST DCLSOC
1153:
1154:
1155:
1156: DSETI: TLNN IOS,READB
1157: JRST ENOLUK
1158: PUSH P,UUO
1159: HRRI UUO,CLSOUT
1160: DSETC0: PUSHJ P,DSETC
1161: POP P,TAC1
1162: HRRE TAC1,TAC1
1163: ADD TAC1,DOFFST(DDB)
1164: SKIPG TAC1
1165: MOVEI TAC1,1
1166: PUSHJ P,DGETL
1167: CAMLE TAC,TAC1
1168: SKIPA TAC,TAC1
1169: DSETC1: TDOA IOS,[XWD IOEND,IODEND]
1170: TDZ IOS,[XWD IOEND,IODEND]
1171: MOVEM TAC,USETP(DDB)
1172: TLNE IOS,WRITEB!ALTERB
1173: SKIPN TAC1,DGRP1R(DDB)
1174: JRST DSIOS
1175: CAIGE TAC,RCPGRP(TAC1)
1176: CAIGE TAC,(TAC1)
1177: TLZN IOS,PNTDIF
1178: JRST DSIOS
1179: MOVEI DAT,DCLSO5
1180: PUSHJ P,NEWAIT
1181: JRST DSIOS
1182:
1183:
1184: DSETO: TLNN IOS,WRITEB!ALTERB
1185: JRST ENOENT
1186: PUSH P,UUO
1187: HRRI UUO,CLSIN
1188: JRST DSETC0
1189:
1190: DGETF: PUSH P,UUO
1191: MOVEI UUO,CLSIN!CLSOUT
1192: TLNE IOS,READB
1193: TRZ UUO,CLSIN
1194: TLNE IOS,WRITEB!ALTERB
1195: TRZ UUO,CLSOUT
1196: PUSHJ P,DSETC
1197: POP P,UUO
1198: PUSHJ P,DGETL
1199: MOVE TAC1,TAC
1200: SUB TAC1,DOFFST(DDB)
1201: XCTR XRW,[HRRM TAC1,(UUO)]
1202: JRST DSETC1
1203:
1204: DGETL: MOVE TAC,FILLNG(DDB)
1205: ↑DGETL1:ADDI TAC,RECSIZ-1
1206: ANDCMI TAC,RECSIZ-1
1207: ASH TAC,-RECWSH
1208: ADDI TAC,1
1209: POPJ P,
1210:
1211: DSETC: MOVSI IOS,IOSET
1212: IORB IOS,DEVIOS(DDB)
1213: PUSH P,DDB
1214: PUSHJ P,CLOSE1
1215: POP P,DDB
1216: TLZ IOS,IOSET
1217: MOVEM IOS,DEVIOS(DDB)
1218: HLLM DDB,USRJDA(UCHN)
1219: POPJ P,
DSKSER page# 0014 next prev
1221:
1222:
1223:
1224:
1225:
1226:
1227:
1228:
1229: DGETW: PUSHJ P,WAIT1
1230: XCTR XR,[MOVE TAC,(UUO)]
1231: CAMN TAC,[-1]
1232: JRST UUOERR
1233: CAME TAC,['GODMOD']
1234: JRST GETPNT
1235: ADDI UUO,1
1236: XCTR XR,[MOVE TAC,(UUO)]
1237: CAIL TAC,GODLEN
1238: JRST UUOERR
1239: SKIPL GODDIS(TAC)
1240: JRST DGETW1
1241: MOVE TAC1,JBTPRV(J)
1242: TLNN TAC1,INFPRV
1243: JRST UUOERR
1244: DGETW1: MOVE TAC1,GODDIS(TAC)
1245: TLNN TAC1,200000
1246: JRST @GODDIS(TAC)
1247: PUSH P,TAC
1248: PUSHJ P,SATGET
1249: POP P,TAC
1250: JRST @GODDIS(TAC)
1251:
1252:
1253:
1254:
1255: GODDIS: GETPNT
1256: 400000,,GDREAD
1257: GDWRIT
1258: 200000,,SETSAT
1259: 200000,,CLRSAT
1260: 200000,,SATRD
1261: 200000,,SATWRT
1262: 200000,,SATFRC
1263: 400000,,FILINF
1264: WRTINF
1265: DIAGL
1266: DIAGW
1267: GETRTR
1268: INFCOM
1269: ADDBLK
1270: FILEUP
1271: RDOFF
1272: WRTOFF
1273: 200000,,TKSFRE
1274: 200000,,VOLID
1275: GODLEN←←.-GODDIS
1276:
1277:
1278:
1279:
1280:
1281:
1282: GETPNT: MOVE TAC,USETP(DDB)
1283: SUB TAC,DOFFST(DDB)
1284: XCTR XW,[MOVEM TAC,(UUO)]
1285: POPJ P,
1286:
1287:
1288: DGODZ: MOVSI AC1,DAWPRV
1289: TDNN AC1,JBTPRV(J)
1290: JRST UUOERR
1291: POPJ P,
DSKSER page# 0015 next prev
1293:
1294:
1295:
1296:
1297:
1298:
1299:
1300:
1301:
1302:
1303:
1304:
1305: GDWRIT: XCTR XR,[HRRZ TAC,2(UUO)]
1306: XCTR XR,[SKIPL 2(UUO)]
1307: JUMPE TAC,UADRER
1308: PUSHJ P,DGODZ
1309: SKIPA TAC,[DWRITE!IOPCHN]
1310: GDREAD: MOVEI TAC,IOPCHN
1311: MOVSM TAC,TFRCTL(DDB)
1312: XCTR XR,[HLRZ TAC,1(UUO)]
1313: JUMPE TAC,UADRER
1314: PUSHJ P,MTPACK
1315: LDB TAC1,PUNIT
1316: XCTR XR,[SKIPGE TAC,2(UUO)]
1317: JRST GDRD1
1318: ANDI TAC,-1
1319: CAMLE TAC,LSTRKT(TAC1)
1320: POPJ P,
1321: GDRD2: LSH TAC,6
1322: ADD TAC,BFSETS(TAC1)
1323: XCTR XLB,[LDB TAC1,[POINT 6,2(UUO),17]]
1324: CAILE TAC1,RCPBLK
1325: JRST UADRER
1326: IOR TAC,TAC1
1327: XCTR XR,[SKIPGE 2(UUO)]
1328: TLO TAC,200000
1329: MOVEM TAC,TFRSEC(DDB)
1330: XCTR XR,[HLRO TAC,1(UUO)]
1331: IMULI TAC1,RECSIZ
1332: SKIPE TAC1
1333: SUBI TAC1,RECSIZ-SECSIZ
1334: SUB TAC1,TAC
1335: CAILE TAC1,BLKWDS
1336: JRST UADRER
1337: PUSHJ P,GOSET
1338: SETOM DDLOC(DDB)
1339: MOVEI DAT,TSTART
1340: PUSHJ P,QEWAIT
1341: SETZM DDLOC(DDB)
1342: DEPOPJ: TRNE IOS,IODERR!IODTER
1343: JRST DPOPJ
1344: JRST DPOPJ1
1345:
1346: MTPACK: XCTR XR,[HRRZ TAC1,1(UUO)]
1347: ADDI TAC1,1
1348: PUSHJ P,RELOCA
1349: JRST UADRER
1350: HRRM TAC1,TFRIOW(DDB)
1351: MOVE TAC,TFRCTL(DDB)
1352: TLNN TAC,DWRITE
1353: JUMPL TAC1,UADRER
1354: XCTR XR,[HRRZ TAC1,1(UUO)]
1355: XCTR XR,[HLRO TAC,1(UUO)]
1356: SUB TAC1,TAC
1357: PUSHJ P,RELOCB
1358: JRST UADRER
1359: XCTR XR,[HLLZ TAC1,1(UUO)]
1360: HLLM TAC1,TFRIOW(DDB)
1361: POPJ P,
1362:
1363: GDRD1: ANDI TAC,-1
1364: CAIGE TAC,NXTRA0*TRKCYL*BKPTRK
1365: JUMPE TAC1,GDRD2
1366: JRST UADRER
DSKSER page# 0016 next prev
1368:
1369:
1370:
1371:
1372:
1373:
1374:
1375:
1376: SETSAT: SKIPA AC2,[MRKBLK]
1377: CLRSAT: MOVEI AC2,RTNBLK
1378: PUSHJ P,DGODZ
1379: LDB TAC1,PUNIT
1380: XCTR XR,[SKIPLE TAC,1(UUO)]
1381: CAMLE TAC,LSTBTB(TAC1)
1382: JRST UADRER
1383: JRST (AC2)
DSKSER page# 0017 next prev
1385:
1386:
1387:
1388:
1389:
1390:
1391:
1392:
1393:
1394:
1395: SATWRT: PUSHJ P,DGODZ
1396: PUSHJ P,SATSUP
1397: JFCL
1398: MOVSS TAC
1399: ADDI TAC1,-1(TAC)
1400: BLT TAC,(TAC1)
1401: POPJ P,
1402:
1403: SATRD: PUSHJ P,SATSUP
1404: JRST UADRER
1405: ADDI TAC1,-1(TAC)
1406: BLT TAC,(TAC1)
1407: POPJ P,
1408:
1409: SATSUP: XCTR XR,[HRRZ TAC1,1(UUO)]
1410: ADDI TAC1,1
1411: PUSHJ P,RELOCA
1412: JRST UADRER
1413: JUMPL TAC1,.+2
1414: AOS (P)
1415: MOVE TAC,TAC1
1416: XCTR XR,[HLRE AC2,1(UUO)]
1417: MOVNS AC2
1418: JUMPLE AC2,UADRER
1419: XCTR XR,[HRRZ TAC1,1(UUO)]
1420: ADD TAC1,AC2
1421: PUSHJ P,RELOCB
1422: JRST UADRER
1423: XCTR XR,[SKIPGE AC1,2(UUO)]
1424: JRST UADRER
1425: MOVE TAC1,AC2
1426: ADD AC2,AC1
1427: LDB AC3,PUNIT
1428: CAMLE AC2,TSATSZ(AC3)
1429: JRST UADRER
1430: MOVE AC3,SATADR(AC3)
1431: ADDI AC3,(AC1)
1432: HRLI TAC,(AC3)
1433: POPJ P,
1434:
1435:
1436:
1437:
1438:
1439:
1440:
1441: SATFRC: LDB TAC,PUNIT
1442: SETOM SATMOD(TAC)
1443: PUSHJ P,CUSATO
1444: JRST WSYNC
DSKSER page# 0018 next prev
1446:
1447:
1448:
1449:
1450:
1451:
1452:
1453:
1454: FILINF: TLNN IOS,READB
1455: POPJ P,
1456: XCTR XR,[MOVE TAC1,1(UUO)]
1457: ADDI TAC1,DQLEN-1
1458: PUSHJ P,RELOCA
1459: JRST UADRER
1460: JUMPL TAC1,UADRER
1461: XCTR XR,[MOVE TAC1,1(UUO)]
1462: PUSHJ P,RELOCB
1463: JRST UADRER
1464: JUMPL TAC1,UADRER
1465: HRLI TAC1,DQINFO(DDB)
1466: HRRZ TAC,TAC1
1467: BLT TAC1,DQLEN-1(TAC)
1468: JRST CPOPJ1
1469:
1470:
1471:
1472:
1473:
1474:
1475:
1476:
1477: WRTINF: PUSHJ P,DGODZ
1478: TDNE IOS,[XWD DEVSBB,IOACT]
1479: PUSHJ P,WAIT1
1480: SKIPE FILNAM(DDB)
1481: TLNE IOS,DELETB
1482: POPJ P,
1483: XCTR XR,[MOVE TAC1,1(UUO)]
1484: ADDI TAC1,DQLEN-1
1485: PUSHJ P,RELOCA
1486: JRST UADRER
1487: XCTR XR,[MOVE TAC1,1(UUO)]
1488: PUSHJ P,RELOCB
1489: JRST UADRER
1490: HRLM TAC1,(P)
1491: MOVE TAC1,JBTSTS(J)
1492: TLNE TAC1,JACCT
1493: JRST LINOUT
1494: LDB TAC1,PUNIT
1495: JUMPN TAC1,LINOUT
1496: PUSHJ P,DISDATE
1497: PUSHJ P,DISERR
1498: [ASCIZ/WRITE INFO, USER = /]
1499: DISARG SIX,<PRJPRG(J)>
1500: [ASCIZ/ PROGRAM = /]
1501: DISARG SIX,<JOBNAM(J)>
1502: [ASCIZ/ TTY/]
1503: DISARG LOC,<JBTLIN(J)>
1504: [ASCIZ/
1505: FILE = /]
1506: DISARG SIX,<FILNAM(DDB)>
1507: [ASCIZ/./]
1508: DISARG SIX,<FILEXT(DDB)>
1509: [ASCIZ/[/]
1510: DISARG SIX,<FILPPN(DDB)>
1511: [ASCIZ/]
1512:
1513: /]
1514: -1
1515: LINOUT: MOVEI AC3,DQLEN
1516: PUSHJ P,UFSGET
1517: PUSH P,AC1
1518: HLLZ TAC1,-1(P)
1519: HRR TAC1,AC1
1520: BLT TAC1,DQLEN(AC1)
1521: PUSHJ P,FILEUP
1522: POP P,SRCTMP(DDB)
1523: TRZ IOS,IODERR!IODTER
1524: TLO IOS,RENAMB
1525: PUSHJ P,GOSET
1526: PUSH P,USETP(DDB)
1527: MOVEI DAT,WRTINS
1528: PUSHJ P,NEWAIT
1529: POP P,USETP(DDB)
1530: MOVE AC1,SRCTMP(DDB)
1531: PUSHJ P,FSGIVE
1532: TLZ IOS,RENAMB
1533: JRST DEPOPJ
1534:
1535:
1536: WRTINS: MOVE TAC,FILLOC(DDB)
1537: PUSHJ P,NEWFIL
1538: WRTIN1: PUSHJ P,GGRETI
1539: HRLZ TAC1,SRCTMP(DDB)
1540: HRRI TAC1,DQINFO(DDB)
1541: BLT TAC1,DQINFO+DQLEN-1(DDB)
1542: PUSHJ P,SPREAD
1543: SKIPN DNXTGP(DDB)
1544: POPJ P,
1545: MOVEI TAC,RCPGRP
1546: ADDM TAC,USETP(DDB)
1547: JRST WRTIN1
DSKSER page# 0019 next prev
1549:
1550:
1551:
1552:
1553:
1554:
1555:
1556:
1557: WRTOFF: TDNE IOS,[XWD DEVSBB,IOACT]
1558: PUSHJ P,WAIT1
1559: SKIPE FILNAM(DDB)
1560: TLNE IOS,DELETB
1561: POPJ P,
1562: TLNE IOS,WRITEB
1563: JRST WOFFOK
1564: MOVSI DAT,100000
1565: MOVE AC2,FILPPN(DDB)
1566: MOVE AC3,FILPRO(DDB)
1567: JSP AC1,PROTEK
1568: WOFFOK: XCTR XR,[MOVE TAC1,1(UUO)]
1569: SOJL TAC1,CPOPJ
1570: PUSH P,TAC1
1571: PUSHJ P,FILEUP
1572:
1573: POP P,SRCTMP(DDB)
1574: TRZ IOS,IODERR!IODTER
1575: TLO IOS,RENAMB
1576: PUSHJ P,GOSET
1577: PUSH P,USETP(DDB)
1578: MOVEI DAT,WRTOFS
1579: PUSHJ P,NEWAIT
1580: POP P,USETP(DDB)
1581: TLZ IOS,RENAMB
1582: JRST DEPOPJ
1583:
1584:
1585: WRTOFS: MOVE TAC,FILLOC(DDB)
1586: PUSHJ P,NEWFIL
1587: WRTOF1: PUSHJ P,GGRETI
1588: MOVE TAC1,SRCTMP(DDB)
1589: MOVEM TAC1,DOFFST(DDB)
1590: PUSHJ P,SPREAD
1591: SKIPN DNXTGP(DDB)
1592: POPJ P,
1593: MOVEI TAC,RCPGRP
1594: ADDM TAC,USETP(DDB)
1595: JRST WRTOF1
1596:
1597:
1598:
1599:
1600:
1601:
1602:
1603: RDOFF: MOVE TAC,DOFFST(DDB)
1604: ADDI TAC,1
1605: XCTR XW,[MOVEM TAC,1(UUO)]
1606: MOVE TAC,FILLNG(DDB)
1607: XCTR XW,[MOVEM TAC,2(UUO)]
1608: POPJ P,
DSKSER page# 0020 next prev
1610:
1611:
1612:
1613:
1614:
1615:
1616:
1617:
1618:
1619: DIAGL: XCTR XR,[MOVE TAC1,1(UUO)]
1620: PUSHJ P,RELOCA
1621: JRST UADRER
1622: JUMPL TAC1,UADRER
1623: HRRZM TAC1,TFRIOW(DDB)
1624: XCTR XR,[HRRZ TAC1,1(UUO)]
1625: ADDI TAC1,177
1626: PUSHJ P,RELOCB
1627: JRST UADRER
1628: XCTR XR,[MOVE TAC,2(UUO)]
1629: CAILE TAC,377
1630: JRST UADRER
1631: DPB TAC,[POINT 8,TFRSEC(DDB),7]
1632: MOVSI TAC,IOPCHN
1633: LWMERG: MOVEM TAC,TFRCTL(DDB)
1634: PUSHJ P,GOSET
1635: MOVEI DAT,LWSTRT
1636: PUSHJ P,QEWAIT
1637: JRST DEPOPJ
1638:
1639:
1640:
1641:
1642:
1643:
1644:
1645:
1646:
1647: DIAGW: PUSHJ P,DGODZ
1648: XCTR XR,[MOVE TAC1,1(UUO)]
1649: PUSHJ P,RELOCA
1650: JRST UADRER
1651: HRRZM TAC1,TFRSEC(DDB)
1652: XCTR XR,[MOVE TAC1,1(UUO)]
1653: ADDI TAC,177
1654: PUSHJ P,RELOCB
1655: JRST UADRER
1656: XCTR XR,[MOVE TAC1,2(UUO)]
1657: PUSHJ P,RELOCA
1658: JRST UADRER
1659: JUMPL TAC1,UADRER
1660: HRRZM TAC1,TFRIOW(DDB)
1661: XCTR XR,[MOVE TAC1,2(UUO)]
1662: ADDI TAC,3
1663: PUSHJ P,RELOCB
1664: JRST UADRER
1665: MOVSI TAC,DWRITE!IOPCHN
1666: JRST LWMERG
1667:
1668:
1669: LWSTRT: MOVEM DDB,DXB
1670: MOVEM J,DXJ
1671: MOVEM P,DXP
1672: TRZ IOS,IODERR!IODTER
1673: MOVE TAC,TFRSEC(DDB)
1674: MOVEM TAC,DXS
1675: MOVE TAC,TFRIOW(DDB)
1676: MOVEM TAC,DXW
1677: HLRZ TAC,TFRCTL(DDB)
1678: MOVEM TAC,DXC
1679: JRST WLDIAG
DSKSER page# 0021 next prev
1681:
1682:
1683:
1684:
1685:
1686:
1687:
1688:
1689:
1690:
1691:
1692:
1693: GETRTR: TLNN IOS,READB+WRITEB+ALTERB
1694: POPJ P,
1695: XCTR XR,[HRRZ TAC1,1(UUO)]
1696: XCTR XR,[HLRO TAC,1(UUO)]
1697: CAMGE TAC,[-40]
1698: JRST UADRER
1699: SUB TAC1,TAC
1700: PUSHJ P,RELOCA
1701: JRST UADRER
1702: JUMPL TAC1,UADRER
1703: XCTR XR,[HRRZ TAC1,1(UUO)]
1704: ADDI TAC1,1
1705: PUSHJ P,RELOCB
1706: JRST UADRER
1707: JUMPL TAC1,UADRER
1708: HRLI TAC1,DDNAM(DDB)
1709: XCTR XR,[HLRO TAC,1(UUO)]
1710: MOVN TAC,TAC
1711: MOVE AC2,TAC
1712: ADDI TAC,(TAC1)
1713: MOVEI AC1,(TAC1)
1714: BLT TAC1,-1(TAC)
1715: MOVE TAC,JBTPRV(J)
1716: CAILE AC2,DQINFO-DDNAM
1717: TLNE TAC,INFPRV
1718: JRST CPOPJ1
1719: SETZM DQINFO-DDNAM(AC1)
1720: MOVSI TAC1,DQINFO-DDNAM(AC1)
1721: HRRI TAC1,DQINFO-DDNAM+1(AC1)
1722: CAILE AC2,DQINFO+DQLEN-DDNAM
1723: MOVEI AC2,DQINFO+DQLEN-DDNAM
1724: ADDI AC2,-1(AC1)
1725: CAIL AC2,(TAC1)
1726: BLT TAC1,(AC2)
1727: JRST CPOPJ1
DSKSER page# 0022 next prev
1729:
1730:
1731:
1732:
1733:
1734:
1735:
1736:
1737:
1738:
1739: INFCOM: TLNN IOS,READB!WRITEB!ALTERB
1740: POPJ P,
1741: XCTR XR,[MOVE TAC,1(UUO)]
1742: JUMPL TAC,UADRER
1743: CAIL TAC,DQLEN
1744: JRST UADRER
1745: ADDI TAC,DQINFO(DDB)
1746: MOVE TAC,(TAC)
1747: XCTR XR,[CAMN TAC,2(UUO)]
1748: AOS (P)
1749: POPJ P,
1750:
1751:
1752:
1753:
1754:
1755:
1756:
1757:
1758:
1759: ADDBLK: TLNN IOS,ALTERB!WRITEB!READB
1760: POPJ P,
1761: XCTR XR,[SKIPG TAC,1(UUO)]
1762: POPJ P,
1763: PUSH P,USETP(DDB)
1764: ADD TAC,DOFFST(DDB)
1765: MOVEM TAC,USETP(DDB)
1766: PUSHJ P,GOSET
1767: PUSHJ P,GETRET
1768: JRST ADDLOS
1769: PUSHJ P,LR2BLK
1770: JUMPE TAC,ADDLOS
1771: SUB P,[1,,1]
1772: MOVE TAC,USETP(DDB)
1773: LSH TAC,RECWSH
1774: CAMG TAC,FILLNG(DDB)
1775: JRST DPOPJ1
1776: MOVEM TAC,FILLNG(DDB)
1777: TLNE IOS,ALTERB!WRITEB
1778: TLO IOS,HDRDIF
1779: TDZ IOS,[IOEND,,IODEND]
1780: JRST DPOPJ1
1781:
1782: ADDLOS: POP P,USETP(DDB)
1783: JRST DPOPJ
1784:
1785:
1786:
1787:
1788: FILEUP: TLNE IOS,ALTERB!WRITEB
1789: TLNN IOS,PNTDIF!HDRDIF
1790: POPJ P,
1791: MOVEI DAT,DCLOI
1792: JRST NENTER
1793:
1794:
1795:
1796:
1797:
1798:
1799:
1800: TKSFRE: LDB TAC1,PUNIT
1801: PUSHJ P,DSKRES
1802: XCTR XEW,[MOVEM TAC,@1(UUO)]
1803: POPJ P,
1804:
1805: ↑DSKRES:MOVE TAC,LSTBTB(TAC1)
1806: SKIPN TAC1,SATADR(TAC1)
1807: JRST DKRES1
1808: MOVE TAC1,DSKUSE(TAC1)
1809: SUBI TAC,=200(TAC1)
1810: JUMPGE TAC,CPOPJ
1811: DKRES1: MOVEI TAC,0
1812: POPJ P,
1813:
1814:
1815:
1816:
1817:
1818:
1819:
1820: VOLID: LDB TAC1,PUNIT
1821: SKIPE TAC,SATADR(TAC1)
1822: MOVE TAC,SATID(TAC)
1823: XCTR XEW,[MOVEM TAC,@1(UUO)]
1824: POPJ P,
DSKSER page# 0023 next prev
1826:
1827:
1828: DLOOK: TLZ IOS,IO!READB
1829: TLNE IOS,WRITEB
1830: JRST EXFIL
1831: SETZM FILNAM(DDB)
1832: JSP AC1,ACCENT
1833: SKIPN ACCNAM(DDB)
1834: JRST ENOFIL
1835: PUSHJ P,GOSET
1836: PUSHJ P,SATGET
1837: JSP AC1,ACCESS
1838: JRST DLK1
1839: JRST DLK2
1840: PUSHJ P,FILSRC
1841: SKIPG SRCTMP(DDB)
1842: JRST ENOFIL
1843: MOVE TAC,SRCEXT(DDB)
1844: MOVEM TAC,ACCEXT(DDB)
1845: MOVE TAC,SRCPRO(DDB)
1846: MOVEM TAC,ACCPRO(DDB)
1847: JRST DLK3
1848:
1849: DLK2: TLNN TAC1,NTRUFD
1850: JRST ENOFIL
1851: JRST ACCES1
1852:
1853: DLK1: MOVE TAC1,FILEXT(TAC)
1854: MOVEM TAC1,SRCEXT(DDB)
1855: MOVEM TAC1,ACCEXT(DDB)
1856: MOVE TAC1,FILPRO(TAC)
1857: MOVEM TAC1,SRCPRO(DDB)
1858: MOVEM TAC1,ACCPRO(DDB)
1859: SKIPN TAC1,FILLOC(TAC)
1860: MOVE TAC1,SRCLOC(TAC)
1861: MOVEM TAC1,SRCLOC(DDB)
1862: MOVE TAC1,UFDPRO(TAC)
1863: MOVEM TAC1,UFDPRO(DDB)
1864: DLK3: MOVSI DAT,200000
1865: JSP AC1,UPROTC
1866: MOVSI DAT,200000
1867: JSP AC1,PROTEC
1868: TLO IOS,READB
1869: PUSHJ P,ACCEST
1870: LDB DAT,PUNIT
1871: SKIPLE TAC,SRCLOC(DDB)
1872: CAMLE TAC,LSTBTB(DAT)
1873: JRST EGARB1
1874: MOVEI DAT,LOOKI
1875: PUSHJ P,QEWAIT
1876: TLNE IOS,LOSBIG
1877: JRST EGARB2
1878: DRPT: MOVEI AC1,3(UUO)
1879: TRNE IOS,DMPBIT
1880: ADDI AC1,2
1881: HLRZ TAC,PROG
1882: CAIL TAC,(AC1)
1883: JRST DRPT2
1884: TRNN UUO,400000
1885: JRST ADRERR
1886: LDB TAC1,PSEGN
1887: JUMPE TAC1,ADRERR
1888: MOVE TAC,JBTSTS(TAC1)
1889: TLNE TAC,JWP
1890: JRST ADRERR
1891: HLRZ TAC,JBTADR(TAC1)
1892: CAIGE TAC,-400000(AC1)
1893: JRST ADRERR
1894: HRRZ TAC,JBTADR(TAC1)
1895: SUBI TAC,400000
1896: JRST DRPT1
1897:
1898: DRPT2: HRRZ TAC,PROG
1899: DRPT1: ADDI TAC,(UUO)
1900: PUSH TAC,FILEXT(DDB)
1901: PUSH TAC,FILPRO(DDB)
1902: MOVN TAC1,DDLNG(DDB)
1903: TLNE IOS,ALTERB
1904: MOVN TAC1,FILLNG(DDB)
1905: MOVNM TAC1,FILLNG(DDB)
1906: MOVE AC1,DOFFST(DDB)
1907: LSH AC1,RECWSH
1908: ADD TAC1,AC1
1909: SKIPLE TAC1
1910: SETZ TAC1,
1911: MOVSS TAC1
1912: PUSH TAC,TAC1
1913: MOVE TAC1,DREFTM(DDB)
1914: MOVEM TAC1,REFTIM(DDB)
1915: TRNE IOS,DMPBIT
1916: PUSH TAC,TAC1
1917: MOVE TAC1,DDMPTM(DDB)
1918: MOVEM TAC1,DMPTIM(DDB)
1919: TRNE IOS,DMPBIT
1920: PUSH TAC,TAC1
1921:
1922: DLOK: PUSHJ P,DGETL
1923: MOVE TAC1,DOFFST(DDB)
1924: ADDI TAC1,1
1925: CAMLE TAC,TAC1
1926: MOVE TAC,TAC1
1927: MOVEM TAC,USETP(DDB)
1928:
1929: DPOPJ1: AOS (P)
1930: DPOPJ: TLZ IOS,GOBIT
1931: MOVEM IOS,DEVIOS(DDB)
1932: CONSZ PI,177B27
1933: POPJ P,
1934: PUSH P,AC3
1935: MOVE J,JOB(PID)
1936: MOVE AC3,JBTLIN(J)
1937: CAMN AC3,[-1]
1938: JRST DPJRA3
1939: PUSH P,AC2
1940: PUSH P,AC1
1941:
1942: MOVSI AC1,DLYBIT
1943: MOVSI AC2,COMBIT
1944: CONO PI,SCNOFF
1945: TDNN AC1,TTYTAB(AC3)
1946: JRST DPJRSC
1947: ANDCAM AC1,TTYTAB(AC3)
1948: TDNE AC2,TTYTAB(AC3)
1949: JRST DPJRSC
1950: AOS COMCNT
1951: IORM AC2,TTYTAB(AC3)
1952: IFN FTTTYBUG,<
1953: PUSHJ P,COMBCK
1954: PUSHJ P,CNTCOM
1955: >
1956: CONO PI,SCNON
1957:
1958: PUSHJ P,WSCHED
1959: DPJRST: POP P,AC1
1960: POP P,AC2
1961: DPJRA3: POP P,AC3
1962: POPJ P,
1963:
1964: DPJRSC: CONO PI,SCNON
1965: JRST DPJRST
1966:
1967: GOSET: TLO IOS,GOBIT
1968: DSIOS: MOVEM IOS,DEVIOS(DDB)
1969: POPJ P,
1970:
1971:
1972:
1973: LOOKI: MOVE TAC,SRCLOC(DDB)
1974: MOVEM TAC,FILLOC(DDB)
1975: PUSHJ P,NEWFIL
1976: PUSHJ P,GETBLK
1977: PUSHJ P,AUDCHK
1978: TRNE IOS,DMPBIT
1979: POPJ P,
1980: MOVE TAC1,THSDAT
1981: CAMG TAC1,DREFTM(DDB)
1982: POPJ P,
1983: SKIPN TTYLOK
1984: SKIPE MAINTM
1985: POPJ P,
1986: MOVEM TAC1,REFTIM(DDB)
1987: MOVEM TAC1,DREFTM(DDB)
1988: MOVEM TAC1,DREFTM+SYSRTV
1989: MOVE TAC,[XWD -40,SYSBUF]
1990: MOVEM TAC,TFRIOW(DDB)
1991: LDB TAC1,PUNIT
1992: JUMPE TAC1,RERITE
1993: TRNE IOS,IOIMPM!IODERR
1994: POPJ P,
1995: PUSHJ P,RERITE
1996: TDZ IOS,[LOSBIG,,IOIMPM!IODERR]
1997: POPJ P,
DSKSER page# 0024 next prev
1999:
2000:
2001: DENTER: JSP AC1,ACCENT
2002: SKIPN ACCNAM(DDB)
2003: JRST ENOFIL
2004: TLNE IOS,READB
2005: JRST DALTER
2006: SETZM FILNAM(DDB)
2007: SETOM SRCTMP(DDB)
2008: JSP AC1,ACCESS
2009: JRST DENT0
2010: JRST EFWRIT
2011: TLO IOS,IO!WRITEB!GOBIT
2012: PUSHJ P,ACCEST
2013: PUSHJ P,SATGET
2014: SKIPG SRCTMP(DDB)
2015: PUSHJ P,FILSRC
2016: TLZ IOS,WRITEB!NTRUFD
2017: MOVEM IOS,DEVIOS(DDB)
2018: MOVSI DAT,100000
2019: JSP AC1,UPROTC
2020: SKIPG SRCTMP(DDB)
2021: JRST DENT1
2022: MOVSI DAT,100000
2023: JSP AC1,PROTEC
2024: LDB AC1,[POINT 9,FILPRO(DDB),8]
2025: JUMPN AC1,DENT1A
2026: LDB AC1,[POINT 9,SRCPRO(DDB),8]
2027: DPB AC1,[POINT 9,FILPRO(DDB),8]
2028: DENT1A: TLOA IOS,NTRUFD!WRITEB
2029: DENT1: TLOA IOS,WRITEB
2030: SKIPA TAC1,SRCEXT(DDB)
2031: MOVE TAC1,THSDAT
2032: LDB TAC,[POINT 15,ACCEXT(DDB),35]
2033: JUMPN TAC,DENT4
2034: MOVE TAC,TAC1
2035: DPB TAC,[POINT 15,ACCEXT(DDB),35]
2036: DENT4: DPB TAC,[POINT 15,FILEXT(DDB),35]
2037: DENT2: MOVEM IOS,DEVIOS(DDB)
2038: TRNE IOS,DMPBIT
2039: JRST DENT3
2040: SETZM DDMPTM(DDB)
2041: SETZM DMPTIM(DDB)
2042: MOVE TAC1,THSDAT
2043: MOVEM TAC1,REFTIM(DDB)
2044: MOVEM TAC1,DREFTM(DDB)
2045: PUSHJ P,DSKTM1
2046: DPB TAC,[POINT 3,ACCEXT(DDB),20]
2047: DPB TAC,[POINT 3,FILEXT(DDB),20]
2048: MOVSI TAC,777000
2049: AND TAC,FILPRO(DDB)
2050: JUMPN TAC,DENT2A
2051: TLNE IOS,NTRUFD
2052: JRST DENT2A
2053:
2054: MOVEI TAC,777000
2055: AND TAC,UFDPR1(DDB)
2056: MOVSI TAC,(TAC)
2057: DENT2A: OR TAC1,TAC
2058: DPB IOS,[POINT 4,TAC1,12]
2059: MOVEM TAC1,FILPRO(DDB)
2060: MOVEM TAC1,ACCPRO(DDB)
2061: MOVSI IOS,HDRDIF
2062: IORB IOS,DEVIOS(DDB)
2063: DENT3: TLNE IOS,ALTERB
2064: JRST ENTREN
2065: LDB TAC,PUNIT
2066: JUMPN TAC,DENT3A
2067: MOVE TAC,DSKUSE+SATTAB
2068: CAILE TAC,LSTBIT-=200
2069: JRST ENTFUL
2070: DENT3A: PUSHJ P,ASNBLK
2071: MOVEM TAC,FILLOC(DDB)
2072: MOVE TAC,DDLOC(DDB)
2073: MOVEM TAC,SRCLOC(DDB)
2074: TLNN IOS,NTRUFD
2075: PUSHJ P,DIRINS
2076: SETZM FILLNG(DDB)
2077: SETZM DQINFO(DDB)
2078: SETZM DQINFO+1(DDB)
2079: HLRZ TAC,FILEXT(DDB)
2080: CAIE TAC,UFDEXT
2081: JRST NENUFD
2082: MOVE TAC,FILPPN(DDB)
2083: CAME TAC,SYSPPN
2084: JRST NENUFD
2085: SETZM DQINFO+2(DDB)
2086: SETZM DQINFO+3(DDB)
2087: JRST WENUFD
2088:
2089: NENUFD: MOVE TAC,JOBNAM(J)
2090: MOVEM TAC,DQINFO+2(DDB)
2091: MOVE TAC,PRJPRG(J)
2092: MOVEM TAC,DQINFO+3(DDB)
2093: WENUFD: SETZM DOFFST(DDB)
2094: PUSHJ P,AUDINF
2095: MOVE TAC,FILLOC(DDB)
2096: PUSHJ P,NEWFI1
2097: PUSHJ P,ASNGR1
2098: MOVEI DAT,SPREAD
2099: TLNN IOS,NTRUFD
2100: PUSHJ P,QEWAIT
2101: LDB TAC,PUNIT
2102: TRNE IOS,IODERR!IOIMPM
2103: JUMPN TAC,SATGLZ
2104: JRST DRPT
2105:
2106: DENT0: MOVE TAC1,FILPRO(TAC)
2107: MOVEM TAC1,SRCPRO(DDB)
2108: MOVE TAC1,FILEXT(TAC)
2109: HRRM TAC1,SRCEXT(DDB)
2110: MOVE TAC1,UFDPRO(TAC)
2111: MOVEM TAC1,UFDPRO(DDB)
2112: MOVEI TAC1,1
2113: MOVEM TAC1,SRCTMP(DDB)
2114: JRST ACCES1
2115:
2116: ENTREN: PUSHJ P,ALTREN
2117: JFCL
2118: JRST DRPT
2119:
2120: DALTER: TLOE IOS,ALTERB
2121: JRST EFWRIT
2122: MOVE TAC,FILNAM(DDB)
2123: CAME TAC,ACCNAM(DDB)
2124: JRST EANAME
2125: HLLZ TAC,FILEXT(DDB)
2126: HLLZ TAC1,ACCEXT(DDB)
2127: CAME TAC,TAC1
2128: JRST EANAME
2129: MOVE AC2,FILPPN(DDB)
2130: CAME AC2,ACCPPN(DDB)
2131: JRST EANAME
2132: MOVSI DAT,100000
2133: JSP AC1,UPROTC
2134: MOVSI DAT,100000
2135: MOVE AC3,FILPRO(DDB)
2136: JSP AC1,PROTEK
2137: JSP AC1,ACCESS
2138: JRST EFWRIT
2139: JRST EFWRIT
2140: JRST DENT2
DSKSER page# 0025 next prev
2142:
2143:
2144: DRENAM: TDNE IOS,[XWD DEVSBB,IOACT]
2145: PUSHJ P,WAIT1
2146: SKIPN FILNAM(DDB)
2147: JRST EXFIL
2148: TLNE IOS,NTRUFD!DELETB
2149:
2150: JRST ENOFIL
2151: TLNN IOS,READB
2152: JRST DRE0
2153: XCTR XR,[MOVE AC2,(UUO)]
2154: JSP AC1,ACCESS
2155: JUMPN AC2,EFWRIT
2156: JFCL
2157: DRE0: PUSHJ P,FILEUP
2158: PUSHJ P,GOSET
2159: TRNE IOS,DMPBIT
2160: JRST DRE0A
2161: MOVE TAC1,THSDAT
2162: MOVEM TAC1,REFTIM(DDB)
2163: DRE0A: JSP AC1,ACCENT
2164: SKIPN TAC,ACCNAM(DDB)
2165: JRST DRNMC
2166: MOVE TAC,ACCPRO(DDB)
2167: XOR TAC,FILPRO(DDB)
2168: TLNN TAC,777000
2169: JRST DRE1
2170: MOVE AC2,FILPPN(DDB)
2171: CAME AC2,SYSPPN
2172: JRST DRE0B
2173: MOVE AC2,FILNAM(DDB)
2174: CAMN AC2,SYSPPN
2175: JRST EPROT
2176: MOVE AC1,JBTPRV(J)
2177: TLNN AC1,PROPRV
2178: CAMN AC2,PRJPRG(J)
2179: JRST DRE1
2180: JRST EPROT
2181:
2182: DRE0B: MOVSI DAT,400000
2183: JSP AC1,UPROTK
2184: MOVSI DAT,400000
2185: MOVE AC3,FILPRO(DDB)
2186: JSP AC1,PROTEK
2187:
2188: DRE1: MOVE TAC,FILNAM(DDB)
2189: CAME TAC,ACCNAM(DDB)
2190: JRST DRNMC
2191: HLLZ TAC1,FILEXT(DDB)
2192: XOR TAC1,ACCEXT(DDB)
2193: TLNE TAC1,777777
2194: JRST DRNMC
2195: MOVE TAC1,FILPPN(DDB)
2196: CAME TAC1,ACCPPN(DDB)
2197: JRST DRNMC
2198: ALTREN: PUSHJ P,FILSRC
2199: JRST DRE2
2200:
2201: DRNMC: MOVSI DAT,100000
2202: MOVE AC2,FILPPN(DDB)
2203: JSP AC1,UPROTK
2204: MOVSI DAT,100000
2205: MOVE AC3,FILPRO(DDB)
2206: JSP AC1,PROTEK
2207: JUMPE TAC,DRDEL
2208: JSP AC1,ACCESS
2209: JRST EDNAME
2210: JRST EDNAME
2211: TLO IOS,RENAMB
2212: MOVEM IOS,DEVIOS(DDB)
2213: MOVE AC3,UFDPRO(DDB)
2214: MOVEM AC3,UFDPR1(DDB)
2215: PUSHJ P,FILSRC
2216: TLZ IOS,RENAMB
2217: MOVE AC3,UFDPR1(DDB)
2218: EXCH AC3,UFDPRO(DDB)
2219: SKIPLE TAC,SRCTMP(DDB)
2220: JRST EDNAME
2221: TRNN IOS,DMPBIT
2222: SETZM DMPTIM(DDB)
2223:
2224: DRE2: TLO IOS,RENAMB
2225: MOVEM IOS,DEVIOS(DDB)
2226: MOVE TAC,DDLOC(DDB)
2227: MOVEM TAC,SRCLOC(DDB)
2228: MOVE TAC,ACCPPN(DDB)
2229: CAMN TAC,FILPPN(DDB)
2230: JRST DREC1
2231: MOVSI DAT,100000
2232: MOVE AC2,ACCPPN(DDB)
2233: JSP AC1,PROT0
2234: MOVE TAC,FILEXT(DDB)
2235: DPB TAC,[POINT 15,ACCEXT(DDB),35]
2236:
2237: TRNE TAC,700000
2238: JRST DRE3
2239: MOVE TAC,ACCPRO(DDB)
2240: TDNE TAC,[777,,777777]
2241: JRST DRE3
2242: MOVE TAC,FILPRO(DDB)
2243: TLZ TAC,777000
2244: IORM TAC,ACCPRO(DDB)
2245: LDB TAC,[POINT 3,FILEXT(DDB),20]
2246: DPB TAC,[POINT 3,ACCEXT(DDB),20]
2247: DRE3: PUSHJ P,DIRINS
2248: MOVEI TEM,FILNAM(DDB)
2249: PUSHJ P,SRCH1
2250: SKIPA DAT,[DR2INT]
2251: DREC1: MOVEI DAT,DRINT
2252: MOVE AC1,FILLNG(DDB)
2253: CAILE AC1,=50*2000
2254: JRST DRE8
2255: PUSHJ P,QEWAIT
2256: JRST DRE7
2257:
2258: DRE8: PUSHJ P,NEWAIT
2259: DRE7: TLZA IOS,RENAMB
2260: DRDEL: PUSHJ P,DCLSO9
2261: LDB TAC,PUNIT
2262: TRNE IOS,IODERR!IOIMPM
2263: JUMPN TAC,SATGLZ
2264: JRST DPOPJ1
2265:
2266:
2267:
2268: DRAUFX: AOS DRAUFO
2269: POPJ P,
2270:
2271: DRAUFD: SKIPN TAC,FILNAM(DDB)
2272: JRST DRAUFX
2273: MOVEM TAC,SRCNAM(DDB)
2274: MOVE TAC,FILEXT(DDB)
2275: HLLZM TAC,SRCEXT(DDB)
2276: PUSHJ P,DIRSRC
2277: SKIPG SRCTMP(DDB)
2278: JRST DRAUFX
2279: MOVE TAC,ACCNAM(DDB)
2280: MOVEM TAC,SYSDTA+UNAM(TAC1)
2281: MOVE TAC,ACCEXT(DDB)
2282: HLLM TAC,SYSDTA+UEXT(TAC1)
2283: MOVE TAC,SYSDTA+UEXT(TAC1)
2284: DPB TAC,[POINT 15,ACCEXT(DDB),35]
2285: LDB TEM,[POINT 3,ACCEXT(DDB),20]
2286: MOVE TAC,ACCPRO(DDB)
2287: TDNN TAC,[777,,777777]
2288: JUMPE TEM,UOLDAT
2289: JRST UNEWDA
2290:
2291: UOLDAT: LDB TEM,[POINT 3,FILEXT(DDB),20]
2292: DPB TEM,[POINT 3,ACCEXT(DDB),20]
2293: MOVE TAC,FILPRO(DDB)
2294: DPB TAC,[POINT 23,ACCPRO(DDB),35]
2295: MOVE TAC,ACCPRO(DDB)
2296: UNEWDA: DPB TEM,[POINT 3,SYSDTA+UEXT(TAC1),20]
2297: MOVEM TAC,SYSDTA+UPRO(TAC1)
2298: MOVE TAC,FILLOC(DDB)
2299: EXCH TAC,SYSDTA+UPPN(TAC1)
2300: MOVEM TAC,SRCLOC(DDB)
2301:
2302: REWRIT: MOVEI TAC,IOPCHN!DWRITE
2303: MOVSM TAC,TFRCTL(DDB)
2304: PUSHJ P,TSTART
2305: POPJ P,
2306:
2307: DRINT: PUSHJ P,DRAUFD
2308: DRINT1: MOVE TAC,FILEXT(DDB)
2309: PUSHJ P,ACCST1
2310: HRRM TAC,FILEXT(DDB)
2311: MOVE TAC,FILLOC(DDB)
2312: PUSHJ P,NEWFIL
2313:
2314: DRINL: PUSHJ P,GGRETI
2315: TLNN IOS,ALTERB
2316: JRST DRINL2
2317: HLRZ TAC,FILEXT(DDB)
2318: CAIE TAC,UFDEXT
2319: JRST DRINL1
2320: MOVE TAC,FILPPN(DDB)
2321: CAMN TAC,SYSPPN
2322: JRST DRINL2
2323: DRINL1: MOVE TAC,JOBNAM(J)
2324: MOVEM TAC,DQINFO+2(DDB)
2325: MOVE TAC,PRJPRG(J)
2326: MOVEM TAC,DQINFO+3(DDB)
2327: DRINL2: PUSHJ P,AUDINF
2328: PUSHJ P,SPREAD
2329: SKIPN DNXTGP(DDB)
2330: POPJ P,
2331: MOVEI TAC,RCPGRP
2332: ADDM TAC,USETP(DDB)
2333: JRST DRINL
2334:
2335:
2336:
2337:
2338:
2339: DR2INT: PUSHJ P,DIRSRC
2340: SKIPG SRCTMP(DDB)
2341: JRST DRAUFX
2342: SETZM SYSDTA+UNAM(TAC1)
2343: SETZM SYSDTA+UEXT(TAC1)
2344: PUSHJ P,REWRIT
2345: JRST DRINT1
DSKSER page# 0026 next prev
2347:
2348:
2349: ACCENT: MOVE J,JOB(PID)
2350: XCTR XR,[MOVE TAC,UNAM(UUO)]
2351: MOVEM TAC,ACCNAM(DDB)
2352: XCTR XR,[MOVE TAC,UEXT(UUO)]
2353: MOVEM TAC,ACCEXT(DDB)
2354: XCTR XR,[MOVE TAC,UPRO(UUO)]
2355: MOVEM TAC,ACCPRO(DDB)
2356: XCTR XR,[SKIPN TAC,UPPN(UUO)]
2357: IFN FTDSKPPN,< SKIPE TAC,DSKPPN(J)
2358: CAIA >
2359: MOVE TAC,PRJPRG(J)
2360: TLNE DDB,SYSDEV
2361: MOVE TAC,CUSPPN
2362: MOVEM TAC,ACCPPN(DDB)
2363: TRNN IOS,DMPBIT
2364: JRST (AC1)
2365: XCTR XR,[MOVE TAC,4(UUO)]
2366: MOVEM TAC,REFTIM(DDB)
2367: XCTR XR,[MOVE TAC,5(UUO)]
2368: MOVEM TAC,DMPTIM(DDB)
2369: JRST (AC1)
2370:
2371: ACCESS: LDB TAC,PUNIT
2372: MOVE TAC,DKDBML(TAC)
2373: HLLZ DAT,ACCEXT(DDB)
2374: ACCES1: HLRZ TAC,DEVSER(TAC)
2375: MOVE TAC1,DEVNAM(TAC)
2376: CAME TAC1,DEVNAM(DDB)
2377: JRST 2(AC1)
2378: CAIN TAC,(DDB)
2379: JRST ACCES1
2380: MOVE TAC1,FILNAM(TAC)
2381: CAME TAC1,ACCNAM(DDB)
2382: JRST ACCES1
2383: HLLZ TAC1,FILEXT(TAC)
2384: CAME TAC1,DAT
2385: JRST ACCES1
2386: MOVE TAC1,FILPPN(TAC)
2387: CAME TAC1,ACCPPN(DDB)
2388: JRST ACCES1
2389: MOVE TAC1,DEVIOS(TAC)
2390: TLNE TAC1,DELETB
2391: JRST ACCES1
2392: TLNE TAC1,ALTERB!RENAMB
2393: JRST EFWRIT
2394: TLNE TAC1,READB
2395: XCT 0(AC1)
2396: TLNE TAC1,WRITEB
2397: XCT 1(AC1)
2398: JRST ACCES1
2399:
2400: ACCEST: MOVEM IOS,DEVIOS(DDB)
2401: ACCST1: MOVE TAC1,ACCNAM(DDB)
2402: MOVEM TAC1,FILNAM(DDB)
2403: MOVE TAC1,ACCEXT(DDB)
2404: MOVEM TAC1,FILEXT(DDB)
2405: MOVE TAC1,ACCPRO(DDB)
2406: MOVEM TAC1,FILPRO(DDB)
2407: MOVE TAC1,ACCPPN(DDB)
2408: MOVEM TAC1,FILPPN(DDB)
2409: POPJ P,
2410:
2411: PROTEC: MOVE AC2,ACCPPN(DDB)
2412: MOVE AC3,SRCPRO(DDB)
2413: PROTEK: CAMN AC2,SYSPPN
2414: JRST PROT3
2415: PROT0: CAMN AC2,PRJPRG(J)
2416: JRST PROT1
2417: LSH AC3,3
2418: MOVE TAC1,JBTPRV(J)
2419: TLNN TAC1,LUPPRV
2420: LSH AC3,3
2421: LSH TAC1,2
2422: TDNE TAC1,DAT
2423: JRST (AC1)
2424: JRST PROT2
2425: PROT1: TLZ DAT,600000
2426: PROT2: TDNN DAT,AC3
2427: JRST (AC1)
2428: JRST EPROT
2429:
2430: PROT3: TLNE DAT,500000
2431: JRST PROT4
2432: MOVE AC2,ACCNAM(DDB)
2433: JRST PROT0
2434:
2435: PROT4: JUMPGE DAT,PROT5
2436: MOVE TAC1,FILNAM(DDB)
2437: CAMN TAC1,PRJPRG(J)
2438: JRST (AC1)
2439: PROT5: MOVE TAC1,JBTPRV(J)
2440: LSH TAC1,2
2441: TDNN TAC1,DAT
2442: JRST EPROT
2443: JUMPL DAT,(AC1)
2444: SKIPN ACCNAM(DDB)
2445: JRST (AC1)
2446: JRST EPROT
2447:
2448:
2449: UPROTC: MOVE AC2,ACCPPN(DDB)
2450: UPROTK: SKIPE AC3,UFDPRO(DDB)
2451: JRST PROT0
2452: JRST (AC1)
DSKSER page# 0027 next prev
2454:
2455:
2456:
2457:
2458:
2459:
2460:
2461:
2462:
2463:
2464: FILSRC: PUSHJ P,SRCH
2465: SKIPE DAT
2466: PUSHJ P,QEWAIT
2467: TLNE IOS,LOSBIG
2468: JRST EGARPJ
2469: POPJ P,
2470:
2471: UFDSRC: PUSHJ P,SRCH
2472: JUMPN DAT,CPOPJ
2473: JRST EACMFD
2474:
2475: SRCH: MOVEI TEM,ACCNAM(DDB)
2476: SRCH1: MOVE DAT,MFDLOC
2477: MOVEM DAT,SRCLOC(DDB)
2478: MOVE TAC,UPPN(TEM)
2479: MOVSI TAC1,UFDEXT
2480: HLLZ AC3,UEXT(TEM)
2481: CAME TAC,SYSPPN
2482: JRST SRCHM
2483: CAMN TAC1,AC3
2484: CAME TAC,UNAM(TEM)
2485: JRST SRCHU
2486: MOVEM DAT,SRCTMP(DDB)
2487: MOVE DAT,MFDEXT
2488: MOVEM DAT,SRCEXT(DDB)
2489: MOVE DAT,MFDPRO
2490: MOVEM DAT,SRCPRO(DDB)
2491: MOVEM DAT,UFDPRO(DDB)
2492: MOVEI DAT,0
2493: POPJ P,
2494:
2495: SRCHM: MOVEM TAC,SRCNAM(DDB)
2496: MOVEM TAC1,SRCEXT(DDB)
2497: CAMN TAC,UFDPPN(DDB)
2498: SKIPN TAC1,UFDADR(DDB)
2499: JRST .+2
2500: JRST CUSSRC
2501: LDB TAC1,PUNIT
2502: JUMPN TAC1,SRCHM1
2503: CAMN TAC,CUSPPN
2504: SKIPN TAC1,CUSLOC
2505: CAIA
2506: JRST CUSSRC
2507: IFN FTDSKPPN,<
2508: SKIPN TAC1,DSKPPN(J)
2509: MOVE TAC1,PRJPRG(J)
2510: CAMN TAC,TAC1
2511: >
2512: IFE FTDSKPPN,< CAMN TAC,PRJPRG(J) >
2513: SKIPN TAC1,JBTUFD(J)
2514: JRST SRCHM1
2515: CUSSRC: HRRZM TAC1,SRCLOC(DDB)
2516: JRST SRCHU
2517:
2518: SRCHM1: MOVEI DAT,DIRSRC
2519: PUSHJ P,QEWAIT
2520: TLNE IOS,LOSBIG
2521: JRST EGARJ2
2522: SKIPG SRCTMP(DDB)
2523: JRST ENOUFD
2524: MOVE TAC1,SRCLOC(DDB)
2525: LDB TAC,PUNIT
2526: JUMPN TAC,SRCHM2
2527: CAME TAC1,JBTUFD(J)
2528: CAMN TAC1,CUSLOC
2529: JRST SRCHM3
2530: SRCHM2: MOVE TAC,SRCNAM(DDB)
2531: MOVEM TAC,UFDPPN(DDB)
2532: MOVEM TAC1,UFDADR(DDB)
2533: SRCHM3: LDB TAC,PUNIT
2534: JUMPN TAC,SRCHU
2535: MOVE TAC,SRCNAM(DDB)
2536: IFN FTDSKPPN,< SKIPN DAT,DSKPPN(J)
2537: MOVE DAT,PRJPRG(J)
2538: CAMN TAC,DAT >
2539: IFE FTDSKPPN,< CAMN TAC,PRJPRG(J) >
2540: MOVEM TAC1,JBTUFD(J)
2541: CAMN TAC,CUSPPN
2542: MOVEM TAC1,CUSLOC
2543: SRCHU: HLLZ TAC1,UEXT(TEM)
2544: MOVEM TAC1,SRCEXT(DDB)
2545: MOVE TAC,UNAM(TEM)
2546: MOVEM TAC,SRCNAM(DDB)
2547: MOVEI DAT,DIRSRC
2548: POPJ P,
2549:
2550:
2551:
2552:
2553: DIRINS: MOVEI DAT,DIRI1
2554: PUSHJ P,QEWAIT
2555: SKIPN SRCTMP(DDB)
2556: POPJ P,
2557: PUSHJ P,MAKBLK
2558: MOVEI DAT,DIRI2
2559: PUSHJ P,QEWAIT
2560: POPJ P,
2561:
2562:
2563:
2564: DIRI1: SETZM SRCNAM(DDB)
2565: PUSHJ P,DIRSRC
2566: SKIPL SRCTMP(DDB)
2567: JRST DIRIHF
2568: SKIPN AC1,DDLNG+SYSRTV
2569: JRST DIRI1W
2570: IDIVI AC1,BKDSIZ
2571: CAIG AC2,BKDSIZ-4
2572: JUMPN AC2,DIRI1W
2573:
2574: SETOM SRCTMP(DDB)
2575: MOVEI DAT,RCPBLK
2576: ADDM DAT,USETP(DDB)
2577: POPJ P,
2578:
2579: DIRIHF: MOVEI TAC1,SYSDTA-1(TAC1)
2580: PUSH TAC1,ACCNAM(DDB)
2581: PUSH TAC1,ACCEXT(DDB)
2582: PUSH TAC1,ACCPRO(DDB)
2583: PUSH TAC1,FILLOC(DDB)
2584: SETZM SRCTMP(DDB)
2585: JRST REWRIT
2586:
2587: DIRI2: MOVEI TAC1,0
2588: DIRI1W: PUSH P,TAC1
2589: MOVEI DAT,4
2590: ADDM DAT,DDLNG(DDB)
2591: PUSHJ P,SPREAD
2592: MOVE TAC,[XWD -BKDSIZ,SYSDTA]
2593: MOVEM TAC,TFRIOW(DDB)
2594: MOVE TAC,USETP(DDB)
2595: PUSHJ P,LR2BLK
2596: JUMPE TAC,[ POP P,TAC1
2597: JRST SETLOS]
2598: PUSHJ P,BKMAP
2599: LDB AC3,PUNIT
2600: ADD TAC,BFSETS(AC3)
2601: MOVEM TAC,TFRSEC(DDB)
2602: POP P,TAC1
2603: JRST DIRIHF
2604:
2605:
2606:
2607:
2608:
2609:
2610: DIRSRC: MOVE TAC,SRCLOC(DDB)
2611: PUSHJ P,NEWFIL
2612: SETZM SRCTMP(DDB)
2613: PUSHJ P,GETBLK
2614: MOVE TAC,DDPPN+SYSRTV
2615: HLLZ TAC1,DDEXT+SYSRTV
2616: CAMN TAC,SYSPPN
2617: CAME TAC1,MFDEXT
2618: PUSHJ P,AUDHAK
2619: MOVE TAC,MFDLOC
2620: MOVE TAC1,SYSRTV+DSATID
2621: LDB DAT,PUNIT
2622: MOVE DAT,SATADR(DAT)
2623: CAMN TAC,SRCLOC(DDB)
2624: CAMN TAC1,SATID(DAT)
2625: JRST DIRSA
2626: CAME DAT,SATADR
2627: JRST AUDHAK
2628: EXCH TAC1,SATID(DAT)
2629: MOVE TAC,SATID(DAT)
2630: PUSHACS
2631: PUSHJ P,DISDATE
2632: PUSHJ P,DISERR
2633: [ASCIZ/SATID CLOBBERED!
2634: SATID IN CORE=/]
2635: DISARG(OCT,<-20+TAC1(P)>)
2636: [ASCIZ/
2637: SATID ON DISK=/]
2638: DISARG(OCT,<-20+TAC(P)>)
2639: [ASCIZ/
2640: DON'T CONTINUE UNTIL YOU GET A WIZARD.
2641: /]
2642: -1
2643: MOVE TAC,SATID+SATTAB
2644: MOVEM TAC,SATID1
2645: MOVEM TAC,SATID2
2646: CONO PI,PIOFF
2647: SETOM DISFLAG
2648: PUSHJ P,DISFLUSH
2649: POPACS
2650: CONO PI,PION
2651: PUSHJ P,DDTCALL
2652: DIRSA: MOVE TAC1,SYSRTV+DQINFO+3
2653: HLRM TAC1,UFDPR1(DDB)
2654: MOVSI TAC1,777000
2655: AND TAC1,SYSRTV+DDPRO
2656: MOVEM TAC1,UFDPRO(DDB)
2657: SETZ TAC1,
2658: MOVN TEM,DDLNG+SYSRTV
2659: JUMPE TEM,DIRSN
2660: DIRS1: MOVEI TAC1,0
2661: DIRS2: MOVE DAT,SYSDTA(TAC1)
2662: CAME DAT,SRCNAM(DDB)
2663: JRST DIRSX
2664: JUMPE DAT,DIRSRZ
2665: MOVE DAT,SYSDTA+1(TAC1)
2666: MOVEM DAT,SRCTMP(DDB)
2667: MOVE TAC,SYSDTA+2(TAC1)
2668: MOVEM TAC,SRCPRO(DDB)
2669: MOVE TAC,SYSDTA+3(TAC1)
2670: MOVEM TAC,SRCLOC(DDB)
2671: XOR DAT,SRCEXT(DDB)
2672: TLNN DAT,-1
2673: JRST DIRSE
2674: DIRSX: ADDI TEM,4
2675: ADDI TAC1,4
2676: JUMPGE TEM,DIRSF
2677: CAIGE TAC1,BKDSIZ
2678: JRST DIRS2
2679: MOVEI TAC1,RCPBLK
2680: ADDM TAC1,USETP(DDB)
2681: PUSHJ P,GETBLK
2682: JRST DIRS1
2683:
2684: DIRSF: SKIPN SRCTMP(DDB)
2685: JRST DIRSN
2686: SKIPN SRCEXT(DDB)
2687: DIRSRZ: TDZA TAC,TAC
2688: DIRSN: SETOM TAC
2689:
2690: DIRSE: EXCH TAC,SRCTMP(DDB)
2691: MOVEM TAC,SRCEXT(DDB)
2692: POPJ P,
DSKSER page# 0028 next prev
2694:
2695:
2696: GETRET: MOVEI DAT,GGRETI
2697: PUSHJ P,TSTRET
2698: PUSHJ P,QEWAIT
2699: PUSHJ P,TSTRET
2700: POPJ P,
2701: JRST CPOPJ1
2702:
2703: TSTRET: MOVE TAC,USETP(DDB)
2704: SKIPN TAC1,DGRP1R(DDB)
2705: POPJ P,
2706: CAIGE TAC,RCPGRP(TAC1)
2707: CAIGE TAC,(TAC1)
2708: POPJ P,
2709: JRST CPOPJ1
2710:
2711: MAKBLK: PUSHJ P,GETRET
2712: PUSHJ P,ASNGRP
2713: MOVE TAC,USETP(DDB)
2714: PUSHJ P,LR2BLK
2715: JUMPN TAC,CPOPJ
2716: PUSHJ P,ASNBLK
2717: TLO IOS,PNTDIF
2718: MOVE AC1,USETP(DDB)
2719: SUB AC1,DGRP1R(DDB)
2720: IDIVI AC1,RCPBLK
2721: LSHC AC1,-1
2722: ADDI AC1,DPTR(DDB)
2723: JUMPL AC2,MAKB3
2724: HRLM TAC,(AC1)
2725: POPJ P,
2726:
2727: MAKB3: HRRM TAC,(AC1)
2728: POPJ P,
2729:
2730:
2731:
2732: ASNGRP: PUSHJ P,ASNBLK
2733: ASNGR1: MOVEM TAC,DNXTGP(DDB)
2734: MOVEI DAT,SPREAD
2735: SKIPE DGRP1R(DDB)
2736: PUSHJ P,QEWAIT
2737: SETZM TAC
2738: EXCH TAC,DNXTGP(DDB)
2739: HRLZM TAC,DPTR(DDB)
2740: SETZM DPTR+1(DDB)
2741: HRLI TAC1,DPTR+1(DDB)
2742: HRRI TAC1,DPTR+2(DDB)
2743: BLT TAC1,DDEND-1(DDB)
2744: MOVE TAC,USETP(DDB)
2745: MOVEM TAC,DGRP1R(DDB)
2746: TLO IOS,PNTDIF
2747: POPJ P,
2748:
2749:
2750:
2751:
2752: SPREDT: MOVE AC2,USETP(DDB)
2753: SUBI AC2,RCPBLK
2754: JRST SPREDF
2755:
2756: SPREAD: MOVE AC2,DGRP1R(DDB)
2757: ADDI AC2,RCPGRP-RCPBLK
2758:
2759: SPREDF: MOVEI TAC1,DSKDAT(DDB)
2760: SPREDD: HRLI TAC1,-SECSIZ
2761: SKIPN TEM,DGRP1R(DDB)
2762: POPJ P,
2763: MOVEM TAC1,TFRIOW(DDB)
2764: MOVEI TAC1,DWRITE!IOPDCH
2765: MOVSM TAC1,TFRCTL(DDB)
2766: SPREDL: CAMLE TEM,AC2
2767: POPJ P,
2768: SPREDR: MOVE TAC,TEM
2769: PUSHJ P,LR2BLK
2770: JUMPE TAC,SPREDI
2771: PUSHJ P,BK2SEC
2772: LDB AC3,PUNIT
2773: ADD TAC,BFSETS(AC3)
2774: MOVEM TAC,TFRSEC(DDB)
2775: PUSHJ P,TSTART
2776: SPREDI: ADDI TEM,RCPBLK
2777: JRST SPREDL
2778:
2779:
2780: AUDINF: MOVSI TAC1,FILNAM(DDB)
2781: HRRI TAC1,DSKDAT(DDB)
2782: BLT TAC1,DSKDAT+7(DDB)
2783: LDB TAC1,PUNIT
2784: MOVE TAC1,SATADR(TAC1)
2785: MOVE TAC1,SATID(TAC1)
2786: MOVEM TAC1,DSATID(DDB)
2787: POPJ P,
2788:
2789: AUDCHK: MOVE TAC,FILNAM(DDB)
2790: CAME TAC,DDNAM(DDB)
2791: TLO IOS,LOSBIG
2792: HLLZ TAC,FILEXT(DDB)
2793: HLLZ TAC1,DDEXT(DDB)
2794: CAME TAC,TAC1
2795: TLO IOS,LOSBIG
2796: MOVE TAC,FILPPN(DDB)
2797: CAME TAC,DDPPN(DDB)
2798: AUDHAK: TLO IOS,LOSBIG
2799: TLNE IOS,LOSBIG
2800: MOVEM DDB,ACDDB
2801: POPJ P,
2802:
2803:
2804:
2805: NEWFIL: CAME TAC,DDLOC(DDB)
2806: NEWFI1: SETZM DGRP1R(DDB)
2807: MOVEM TAC,DDLOC(DDB)
2808: MOVEI TAC1,1
2809: MOVEM TAC1,USETP(DDB)
2810: POPJ P,
2811:
2812:
2813:
2814: GETBLK: PUSHJ P,GGRETI
2815: JUMPE TAC,CPOPJ
2816: MOVE TAC,USETP(DDB)
2817: SKIPN TFRIOW(DDB)
2818: JRST GETBK1
2819: MOVE TAC1,DGRP1R(DDB)
2820: CAIGE TAC,RCPBLK(TAC1)
2821: POPJ P,
2822: GETBK1: PUSHJ P,LR2BLK
2823: JUMPE TAC,CPOPJ
2824: PUSHJ P,BK2SEC
2825: LDB AC3,PUNIT
2826: ADD TAC,BFSETS(AC3)
2827: MOVEM TAC,TFRSEC(DDB)
2828: MOVE TAC,BUFIOW
2829: MOVEM TAC,TFRIOW(DDB)
2830: MOVEI TAC,IOPCHN
2831: MOVSM TAC,TFRCTL(DDB)
2832: PUSHJ P,TSTART
2833: POPJ P,
2834:
2835:
2836:
2837: GGRETI: SETZM TFRIOW(DDB)
2838: SKIPN TAC1,DGRP1R(DDB)
2839: JRST GGBLK1
2840: MOVE TAC,USETP(DDB)
2841: CAIL TAC,RCPGRP(TAC1)
2842: JRST GGNXT
2843: CAIL TAC,(TAC1)
2844: POPJ P,
2845:
2846: GGBLK1: SKIPA TAC,DDLOC(DDB)
2847: GGNXT: MOVE TAC,DNXTGP(DDB)
2848: JUMPE TAC,CPOPJ
2849: PUSHJ P,BK2SEC
2850: LDB AC3,PUNIT
2851: ADD TAC,BFSETS(AC3)
2852: MOVEM TAC,TFRSEC(DDB)
2853: MOVE TAC,BUFIOW
2854: MOVEM TAC,TFRIOW(DDB)
2855: MOVEI TAC,IOPCHN
2856: MOVSM TAC,TFRCTL(DDB)
2857: PUSHJ P,TSTART
2858: HRLI TAC,SYSBUF
2859: HRRI TAC,DSKDAT(DDB)
2860: BLT TAC,DSKDAT+SECSIZ-1(DDB)
2861: MOVE TAC,USETP(DDB)
2862: MOVE TAC1,DGRP1R+SYSRTV
2863: CAIL TAC,RCPGRP(TAC1)
2864: JRST GGNXT
2865: POPJ P,
2866:
2867:
2868:
2869: LR2BLK: SUB TAC,DGRP1R(DDB)
2870: CAIL TAC,0
2871: CAIL TAC,RCPGRP
2872: MOVEI TAC,1
2873: IDIVI TAC,RCPBLK
2874: MOVEI AC3,1(TAC1)
2875: LSHC TAC,-1
2876: ADDI TAC,DPTR(DDB)
2877: MOVE TAC,(TAC)
2878: SKIPL TAC1
2879: HLRS TAC
2880: HRRZS TAC
2881: POPJ P,
2882:
2883:
2884:
2885: BK2SEC: SETZ AC3,
2886:
2887: BKMAP: LSH TAC,6
2888: ANDI AC3,77
2889: IOR TAC,AC3
2890: POPJ P,
DSKSER page# 0029 next prev
2892:
2893:
2894: CUSATO: LDB TAC,PUNIT
2895: SKIPE SATMOD(TAC)
2896: SKIPG TAC1,SATADR(TAC)
2897: POPJ P,
2898: MOVE DAT,TIME
2899: MOVEM DAT,DTIME(TAC1)
2900: MOVE DAT,THSDAT
2901: MOVEM DAT,DDATE(TAC1)
2902: MOVEI DAT,SATOUT
2903: JUMPE TAC,NENTER
2904: HRLI TAC1,-USATSZ
2905: MOVEM TAC1,TFRIOW(DDB)
2906: MOVEI DAT,USATOUT
2907: PUSHJ P,NENTER
2908: TRNN IOS,IODERR!IOIMPM
2909: POPJ P,
2910: SATGLZ: PUSHJ P,ERZIOS
2911: JSP TAC,ERRPTU
2912: ASCIZ /UDP OFFLINE OR WRITE LOCKED/
2913: JRST EXCALP
2914:
2915:
2916: SATOUT: SKIPA TAC,[DWRITE!IOPCHN]
2917: SATIN: MOVEI TAC,IOPCHN
2918: TLO IOS,SATOP
2919: MOVSM TAC,TFRCTL(DDB)
2920: MOVE TAC,[XWD -SATSIZ,SATTAB]
2921: MOVEM TAC,TFRIOW(DDB)
2922: SETZM TFRSEC(DDB)
2923: PUSHJ P,TSTART
2924: SETZM SATMOD
2925: TLZ IOS,SATOP
2926: POPJ P,
2927:
2928: ASNBLK: PUSHJ P,IASNBK
2929: PUSH P,TAC
2930: MOVEM TAC,TFRSEC(DDB)
2931: MOVEI DAT,RB4WCK
2932: PUSHJ P,QEWAIT
2933: POP P,TAC
2934: SKIPN TFRIOW(DDB)
2935: JRST ASNBLK
2936: POPJ P,
2937:
2938:
2939: RB4WCK: SKIPN TAC,TFRSEC(DDB)
2940: JRST RB4WLS
2941: PUSHJ P,BK2SEC
2942: LDB AC3,PUNIT
2943: ADD TAC,BFSETS(AC3)
2944: MOVEM TAC,TFRSEC(DDB)
2945: MOVE TAC,[XWD -SECSIZ,QBUF]
2946: MOVEM TAC,TFRIOW(DDB)
2947: MOVEI TAC,IOPCHN
2948: MOVSM TAC,TFRCTL(DDB)
2949: PUSHJ P,TSTART
2950: MOVE IOS,DEVIOS(DDB)
2951: TRNE IOS,IODERR!IODTER
2952: JRST RB4WER
2953: SKIPE QBUF+DDNAM-DSKDAT
2954: SKIPN QBUF+DDPPN-DSKDAT
2955: POPJ P,
2956: LDB TAC,PUNIT
2957: MOVE TAC,SATADR(TAC)
2958: MOVE TAC,SATID(TAC)
2959: CAME TAC,QBUF+DSATID-DSKDAT
2960: POPJ P,
2961: RB4WLS: AOS DSKOVC
2962: RB4WER: SETZM TFRIOW(DDB)
2963: POPJ P,
2964:
2965:
2966:
2967:
2968: SATGT0: MOVEI DAT,CPOPJ
2969: PUSHJ P,NEWAIT
2970: SATGET: LDB TAC1,PUNIT
2971: SKIPLE AC3,SATADR(TAC1)
2972: POPJ P,
2973: JUMPL AC3,SATGT0
2974: SETOM SATADR(TAC1)
2975: MOVEI AC3,USATSZ
2976: PUSHJ P,UFSGET
2977: HRLI AC1,-USATSZ
2978: MOVEM AC1,TFRIOW(DDB)
2979: MOVEI DAT,USATIN
2980: PUSHJ P,NEWAIT
2981: TRNE IOS,IOIMPM!IODERR
2982: JRST SATGL1
2983: LDB TAC,PUNIT
2984: MOVE TAC1,SATADR(TAC)
2985: MOVE AC1,IDSAT(TAC1)
2986: CAMN AC1,['SATID ']
2987: JRST ACISTT
2988: PUSHJ P,ERZIOS
2989: JSP TAC,ERRPTU
2990: ASCIZ /NOT A NEW FORMAT UDP/
2991: JRST EXCALP
2992:
2993:
2994:
2995: SATGL1: HRRZ AC1,TFRIOW(DDB)
2996: PUSHJ P,FSGIVE
2997: JRST SATGLZ
2998:
2999:
3000:
3001: USATOUT:SKIPA TAC,[DWRITE!IOPCHN]
3002: USATIN: MOVEI TAC,IOPCHN
3003: MOVSM TAC,TFRCTL(DDB)
3004: TLO IOS,SATOP
3005: LDB TAC,PUNIT
3006: MOVE TAC,BFSET(TAC)
3007: PUSHJ P,BK2SEC
3008: MOVEM TAC,TFRSEC(DDB)
3009: PUSHJ P,TSTART
3010: TLZ IOS,SATOP
3011: LDB TAC,PUNIT
3012: SETZM SATMOD(TAC)
3013: TRNE IOS,IODERR!IODTER!IOIMPM
3014: TDZA TAC1,TAC1
3015: HRRZ TAC1,TFRIOW(DDB)
3016: MOVEM TAC1,SATADR(TAC)
3017: POPJ P,
DSKSER page# 0030 next prev
3019:
3020:
3021:
3022: ASNST1: CONO PI,IOPON
3023: PUSHJ P,EDFULL
3024:
3025: IASNBK: LDB AC3,PUNIT
3026: MOVE AC3,SATADR(AC3)
3027: MOVE AC2,LSTBLK(AC3)
3028: AOJA AC2,ASNSL2
3029: ASNSL1: CONO PI,IOPON
3030: ASNSL2: CONO PI,IOPOFF
3031: LDB TAC,PUNIT
3032: CAML AC2,LSTBTB(TAC)
3033: MOVEI AC2,1
3034: CAMN AC2,LSTBLK(AC3)
3035: JRST ASNST1
3036: MOVE TAC,AC2
3037: IDIVI TAC,44
3038: MOVEI AC1,1
3039: ROT AC1,(TAC1)
3040: ADDI TAC,(AC3)
3041: TDNE AC1,SATBIT(TAC)
3042: AOJA AC2,ASNSL1
3043: IORM AC1,SATBIT(TAC)
3044: LDB TAC,PUNIT
3045: SETOM SATMOD(TAC)
3046: XORM AC1,SATCHK(AC3)
3047: CONO PI,IOPON
3048: MOVEM AC2,LSTBLK(AC3)
3049: AOS TAC,AC2
3050: AOS DSKUSE(AC3)
3051: SKIPG AC1,BADCNT(AC3)
3052: POPJ P,
3053: CAILE AC1,BADMAX
3054: MOVEI AC1,BADMAX
3055: HRLOI AC1,-1(AC1)
3056: EQVI AC1,(AC3)
3057: CAMN TAC,BADTRK(AC1)
3058: JRST IASNBK
3059: AOBJN AC1,.-2
3060: POPJ P,
3061:
3062:
3063: RTNBLK: LDB AC1,PUNIT
3064: CAMG TAC,LSTBTB(AC1)
3065: SOJGE TAC,.+2
3066: POPJ P,
3067: IDIVI TAC,44
3068: ADD TAC,SATADR(AC1)
3069: MOVEI AC1,1
3070: ROT AC1,(TAC1)
3071: TDNN AC1,SATBIT(TAC)
3072: POPJ P,
3073: ANDCAM AC1,SATBIT(TAC)
3074: LDB TAC,PUNIT
3075: SETOM SATMOD(TAC)
3076: MOVE TAC,SATADR(TAC)
3077: XORM AC1,SATCHK(TAC)
3078: SOS DSKUSE(TAC)
3079: POPJ P,
3080:
3081: ↓MRKBLK:LDB AC1,PUNIT
3082: CAMG TAC,LSTBTB(AC1)
3083: SOJGE TAC,.+2
3084: POPJ P,
3085: IDIVI TAC,44
3086: ADD TAC,SATADR(AC1)
3087: MOVEI AC1,1
3088: ROT AC1,(TAC1)
3089: TDNE AC1,SATBIT(TAC)
3090: POPJ P,
3091: IORM AC1,SATBIT(TAC)
3092: LDB TAC,PUNIT
3093: SETOM SATMOD(TAC)
3094: MOVE TAC,SATADR(TAC)
3095: XORM AC1,SATCHK(TAC)
3096: AOS DSKUSE(TAC)
3097: POPJ P,
3098:
3099: CSATID: LDB TAC,PUNIT
3100: JUMPN TAC,CPOPJ
3101: MOVE TAC,SATID+SATTAB
3102: CAMN TAC,SATID1
3103: CAME TAC,SATID2
3104: CAIA
3105: POPJ P,
3106: PUSHACS
3107: PUSHJ P,DISDAT
3108: PUSHJ P,DISERR
3109: [ASCIZ/BACKUP SATID'S DISAGREE.
3110: SATID = /]
3111: DISARG OCT,SATID+SATTAB
3112: [ASCIZ/
3113: SATID1 = /]
3114: DISARG OCT,SATID1
3115: [ASCIZ/
3116: SATID2 = /]
3117: DISARG OCT,SATID2
3118: [ASCIZ/
3119: DON'T DO ANYTHING 'TILL YOU GET A WIZARD!
3120: /]
3121: -1
3122: SETOM DISFLAG
3123: PUSHJ P,DISFLUSH
3124: POPACS
3125: PUSHJ P,DDTCAL
3126: JRST CSATID
3127:
3128:
3129: MRKBAD: SKIPGE TAC,DSKLRN
3130:
3131: POPJ P,
3132:
3133: MOVE DDB,DSKACS+DDB
3134: LDB AC1,PUNIT
3135: SKIPN AC1,SATADR(AC1)
3136: POPJ P,
3137: SKIPN TAC1,BADCNT(AC1)
3138: JRST MRKBD1
3139: CAILE TAC1,BADMAX
3140: MOVEI TAC1,BADMAX
3141: MRKBD0: MOVEI AC2,(AC1)
3142: ADDI AC2,(TAC1)
3143: CAMN TAC,BADTRK-1(AC2)
3144: POPJ P,
3145: SOJG TAC1,MRKBD0
3146: MRKBD1: AOS TAC1,BADCNT(AC1)
3147: CAIGE TAC1,BADMAX
3148: JRST MRKBD2
3149: PUSHJ P,DISMES
3150: ASCIZ /TOO MANY BAD DISK TRACKS. GET A WIZARD, OR PUSH CONTINUE
3151: /
3152: SETOM DISFLAG
3153: PUSHJ P,DISFLUSH
3154: HALT CPOPJ
3155:
3156: MRKBD2: ADDI TAC1,(AC1)
3157: MOVEM TAC,BADTRK-1(TAC1)
3158: ADDM TAC,BADCHK(AC1)
3159: PUSH P,BADCNT(AC1)
3160: PUSHJ P,MRKBLK
3161: PUSHJ P,DISMES
3162: ASCIZ /NEW BAD DISK TRACK. BADCNT=/
3163: POP P,TAC
3164: PUSHJ P,DISDCP
3165: PUSHJ P,DISMES
3166: ASCIZ / BADMAX=/
3167: MOVEI TAC,BADMAX
3168: PUSHJ P,DISDCP
3169: JRST DISCRLF
DSKSER page# 0031 next prev
3171:
3172:
3173: DELETE: PUSHJ P,NEWFIL
3174: MOVEI DAT,DELFIL
3175: MOVE AC1,FILLNG(DDB)
3176: CAILE AC1,=50*2000
3177: JRST NEWAIT
3178: JRST QEWAIT
3179:
3180:
3181:
3182: DELFIL: PUSHJ P,DELBLK
3183: TRZE IOS,IODTER
3184: JRST DSIOS
3185: MOVE TAC,USETP(DDB)
3186: DELF2: PUSHJ P,LR2BLK
3187: JUMPE TAC,.+2
3188: PUSHJ P,RTNBLK
3189: MOVEI TAC,RCPBLK
3190: ADDB TAC,USETP(DDB)
3191: MOVE TAC1,DGRP1R(DDB)
3192: CAIGE TAC,RCPGRP(TAC1)
3193: JRST DELF2
3194: DELF3: SKIPE DNXTGP(DDB)
3195: JRST DELFIL
3196: POPJ P,
3197:
3198: DELBLK: PUSHJ P,GGRETI
3199: PUSHJ P,AUDCHK
3200: TLZE IOS,LOSBIG
3201: JRST DELBK1
3202: LDB AC2,PJOBN
3203: MOVE AC1,JOBNAM(AC2)
3204: MOVEM AC1,DQINFO+2(DDB)
3205: MOVE AC1,PRJPRG(AC2)
3206: MOVEM AC1,DQINFO+3(DDB)
3207: SETZM DSATID(DDB)
3208: JRST SPREAD
3209:
3210: DELBK1: TRO IOS,IODTER
3211: JRST DSIOS
DSKSER page# 0032 next prev
3213:
3214:
3215:
3216:
3217:
3218:
3219:
3220:
3221: ↑DFWRT:
3222: ↑DFRED: CONO PI,IOPOFF
3223: PUSHJ P,DSSTRT
3224: MOVSI 17,UUOACS
3225: BLT 17,17
3226: CONO PI,IOPON
3227: POPJ P,
3228:
3229: DSSTRT: POP P,INTRTN
3230: JSR DSKSV
3231: PUSHJ P,SQGOX1
3232: JRST DNSTR1
3233:
3234:
3235:
3236: SQGOA: MOVEI TAC1,TRIES
3237: MOVEM TAC1,SERACT
3238: MOVSI TAC,200000
3239: ORB TAC,SERA
3240: MOVE TAC1,SQREQ
3241: MOVM J,FINISH
3242: HRRO J,J
3243: PUSHJ P,SQGOX
3244: JRST DNSTR1
3245:
3246:
3247:
3248:
3249:
3250: SQGOX1: ADDI TAC1,1
3251: SQGOX: MOVE DDB,SWPDDB
3252: MOVEM TAC1,TFRIOW(DDB)
3253: MOVEI DAT,IOPCHN
3254: SKIPL SERA
3255: TRO DAT,DWRITE
3256: MOVSM DAT,TFRCTL(DDB)
3257: PUSHJ P,SBK2SC
3258: MOVEM TAC,TFRSEC(DDB)
3259: SQGO2: SETZB IOS,DEVIOS(DDB)
3260: PUSHJ P,SETACT
3261: PUSHJ P,TGO
3262: MOVEI IOS,IOACT
3263: ANDCAB IOS,DEVIOS(DDB)
3264: TRNE IOS,IOIMPM
3265: JRST SWPLUZ
3266: TRNE IOS,IODERR!IODTER
3267: JRST SWPERR
3268: JRST SNOERR
3269:
3270: SWPLUZ: PUSHACS
3271: PUSHJ P,DISMES
3272: ASCIZ /SWAPPING PACK OFF LINE OR IN WRITE LOCK!
3273: PLEASE FIX IT AND CONTINUE.
3274: /
3275: SETOM DISFLAG
3276: PUSHJ P,DISFLUSH
3277: POPACS
3278: HALT SQGO2
3279:
3280: SWPERR: SOSLE SERACT
3281: JRST SQGO2
3282: TRO IOS,IODERR
3283:
3284: SNOERR: MOVE TAC,IOS
3285: ANDI TAC,IODERR!IODTER
3286: MOVEM TAC,SERA
3287: SETZM SQREQ
3288: SETZM SWPCNT
3289: POPJ P,
3290:
3291:
3292:
3293:
3294: SBK2SC: HRRZ TAC,TAC
3295: IDIVI TAC,1140
3296: LSH TAC,14
3297: TLO TAC,400000
3298: POPJ P,
DSKSER page# 0033 next prev
3300:
3301: UEWAIT: TDZE IOS,[XWD DEVSBB,IOACT]
3302: PUSHJ P,WSYNC
3303: MOVSI AC1,DEVIBF
3304: ANDCAM AC1,DEVCMR(DDB)
3305: PUSHJ P,SETACT
3306: PUSHJ P,QUE1
3307: JRST WSYNC
3308:
3309:
3310:
3311: QEWAIT: PUSH P,PWSYNC
3312: QENTER: TDZE IOS,[XWD DEVSBB,IOACT]
3313: PUSHJ P,WSYNC
3314: MOVSI AC1,DEVIBF
3315: ANDCAM AC1,DEVCMR(DDB)
3316: PUSHJ P,SETACT
3317: QE1: TDZA AC1,AC1
3318: QUE1: MOVEI AC1,1
3319: SKIPE @MIPTR(AC1)
3320: JRST .-1
3321: CONO PI,IOPOFF
3322: HRLM DDB,@MIPTR(AC1)
3323: HRRM DAT,@MIPTR(AC1)
3324: AOS DAT,MIPTR(AC1)
3325: AOS DQCNT
3326: CAML DAT,MQEND(AC1)
3327: MOVE DAT,MQBEG(AC1)
3328: MOVEM DAT,MIPTR(AC1)
3329: MOVNI DAT,1
3330: EXCH DAT,DFBUSY
3331: JUMPN DAT,IACTIV
3332: PUSHJ P,DIGO
3333: INSRTN: MOVSI 17,UUOACS
3334: BLT 17,17
3335: IACTIV: CONO PI,IOPON
3336: PWSYNC: POPJ P,WSYNC
3337:
3338:
3339: NEWAIT: PUSH P,PWSYNC
3340: NENTER: TDZE IOS,[XWD DEVSBB,IOACT]
3341: PUSHJ P,WSYNC
3342: MOVSI AC1,DEVIBF
3343: ORM AC1,DEVCMR(DDB)
3344: TLO IOS,DEVSBB
3345: MOVEM IOS,DEVIOS(DDB)
3346: JRST QE1
3347:
3348:
3349: DIGO: POP P,INTRTN
3350: JSR DSKSV
3351:
3352:
3353: JRST DNSTRT
DSKSER page# 0034 next prev
3355:
3356:
3357:
3358: DNXTRQ: MOVE AC1,QALT
3359: SETZM @MOPTR+1(AC1)
3360: AOS TAC,MOPTR+1(AC1)
3361: SOS DQCNT
3362: CAML TAC,MQEND+1(AC1)
3363: MOVE TAC,MQBEG+1(AC1)
3364: MOVEM TAC,MOPTR+1(AC1)
3365:
3366: DNSTRT: SKIPE SQREQ
3367: JRST SQGOA
3368: DNSTR1: SETCMB AC1,QALT
3369: SKIPN TAC,@MOPTR+1(AC1)
3370: JRST DFSTOP
3371: PUSHJ P,DSETUP
3372: ISRTN: JRST DNXTRQ
3373:
3374: DFSTOP: SETCA AC1,AC1
3375: SKIPE @MOPTR+1(AC1)
3376: JRST DNSTRT
3377: SETZM DFBUSY
3378: JRST @INTRTN
3379:
3380: DSETUP: HLRZ DDB,TAC
3381: SETZB PROG,BKIN
3382: MOVE IOS,DEVIOS(DDB)
3383: LDB J,PJOBN
3384: MOVSI AC1,DEVIBF
3385: TDNE AC1,DEVCMR(DDB)
3386: JRST DNSTR2
3387: TLZE IOS,DEVSBB
3388: PUSHJ P,MESS2
3389: SKIPE J
3390: SKIPE PROG,JBTADR(J)
3391: TRON IOS,IOACT
3392: PUSHJ P,MESS3
3393: JRST DNSTR3
3394:
3395: DNSTR2: TRZE IOS,IOACT
3396: PUSHJ P,MESS4
3397: TLON IOS,DEVSBB
3398: PUSHJ P,MESS5
3399: DNSTR3: PUSHJ P,(TAC)
3400: DRQDN: MOVSI AC1,DEVIBF
3401: ANDCAM AC1,DEVCMR(DDB)
3402: TDZN IOS,[XWD DEVSBB,IOACT]
3403: PUSHJ P,MESS1
3404: TLZE IOS,IOW
3405: PUSHJ P,SETIOD
3406: JRST DSIOS
3407:
3408: MESS1: PUSHACS
3409: PUSHJ P,DISDATE
3410: PUSHJ P,DISMES
3411: ASCIZ/IOACT OFF AT DRQDN.
3412: /
3413: POPACS
3414: JRST DSIOS
3415:
3416: MESS2: PUSHACS
3417: PUSHJ P,DISDATE
3418: PUSHJ P,DISMES
3419: ASCIZ/DEVIBF OFF BUT DEVSBB ON AT DNSTRT.
3420: /
3421: POPACS
3422: JRST DSIOS
3423:
3424: MESS3: PUSHACS
3425: PUSHJ P,DISDATE
3426: PUSHJ P,DISMES
3427: ASCIZ/IOACT OFF AT DNSTRT.
3428: /
3429: POPACS
3430: JRST DSIOS
3431:
3432: MESS4: PUSHACS
3433: PUSHJ P,DISDATE
3434: PUSHJ P,DISMES
3435: ASCIZ/DEVIBF AND IOACT ON AT DNSTRT.
3436: /
3437: POPACS
3438: JRST DSIOS
3439:
3440: MESS5: PUSHACS
3441: PUSHJ P,DISDATE
3442: PUSHJ P,DISMES
3443: ASCIZ/DEVIBF ON BUT DEVSSB OFF.
3444: /
3445: POPACS
3446: JRST DSIOS
DSKSER page# 0035 next prev
3448:
3449:
3450: TSTART: MOVEI TAC,TRIES
3451: HRRM TAC,TFRCTL(DDB)
3452: TREDO: PUSHJ P,TGO
3453: TFSRTN: TRNN IOS,IODERR!IODTER
3454: POPJ P,
3455: SOS TAC,TFRCTL(DDB)
3456: TRNE TAC,-1
3457: JRST TREDO
3458: TLO IOS,LOSBIG
3459: POPJ P,
3460:
3461: TGO: MOVEM DDB,DXB
3462: MOVEM J,DXJ
3463: MOVEM P,DXP
3464: TRZ IOS,IODERR!IODTER
3465: MOVE TAC,TFRSEC(DDB)
3466: MOVEM TAC,DXS
3467: MOVE TAC,TFRIOW(DDB)
3468: MOVEM TAC,DXW
3469: HLRZ TAC,TFRCTL(DDB)
3470: MOVEM TAC,DXC
3471: JRST GO2314
DSKSER page# 0036 next prev
3473:
3474:
3475:
3476:
3477: ENOUFD: POP P,TAC
3478: POP P,TAC
3479: JRST ENOUF1
3480:
3481: ENOFIL: JSP TAC,ERRC1
3482: ENOUF1: JSP TAC,ERRC1
3483: EPROT: JSP TAC,ERRC1
3484: EFWRIT: JSP TAC,ERRC1
3485: EDNAME: JSP TAC,ERRC1
3486: EXFIL: JSP TAC,ERRC1
3487: EANAME: JSP TAC,ERRC1
3488: ENODEV: JSP TAC,ERRC1
3489: EGARB1: JSP TAC,ERRC2
3490:
3491: EGARB2: JSP TAC,ERRC2
3492: EFULLZ: JSP TAC,ERRC1
3493:
3494: ERRC2: TRNN IOS,GARBIT
3495: JRST EGARB
3496: PUSHJ P,ERZIOS
3497: ERRC1: SUBI TAC,ENOFIL+1
3498: XCTR XRW,[HRRM TAC,ERRBOX(UUO)]
3499: ANDI TAC,-1
3500: CAIE TAC,11
3501: SETZM FILNAM(DDB)
3502: JRST ERZIOS
3503:
3504:
3505:
3506: ENTFUL: PUSHJ P,EFULLZ
3507: TRNE IOS,GARBIT
3508: POPJ P,
3509: EDFULL: PUSH P,IOS
3510: PUSHJ P,DPOPJ
3511: PUSH P,DDB
3512: PUSHJ P,TTYFUW
3513: PUSHJ P,INLMES
3514: ASCIZ /
3515: DISK IS FULL!/
3516: PUSHJ P,PRCRCC
3517: PUSHJ P,TTYSTC
3518: PUSHJ P,STOP1
3519: POP P,DDB
3520: POP P,IOS
3521: POPJ P,
3522:
3523: ENOENT: JSP TAC,ERRPTU
3524: ASCIZ /NEED ENTER BEFORE OUTPUT/
3525: JRST EXCALP
3526:
3527: ENOLUK: JSP TAC,ERRPTU
3528: ASCIZ /NEED LOOKUP BEFORE INPUT/
3529: JRST EXCALP
3530:
3531: ELOSE: JSP TAC,ERRPTU
3532: ASCIZ /ERROR IN DSKSER/
3533: JRST EXCALP
3534:
3535: EGARJ2: POP P,TAC
3536: EGARPJ: POP P,TAC
3537: EGARB: PUSHJ P,ERZIOS
3538: TRNE IOS,IODTER!IODERR
3539: JRST EGARC
3540: JSP TAC,ERRPTU
3541: ASCIZ /BAD RETRIEVAL/
3542: JRST EXCALP
3543:
3544: EGARC: JSP TAC,ERRPTU
3545: ASCIZ /DISK TRANSMISSION ERROR/
3546: JRST EXCALP
3547:
3548: EACMFD: JSP TAC,ERRPTU
3549: ASCIZ /CAN'T ENTER-RENAME MFD/
3550: JRST EXCALP
3551:
3552: EDMPLS: JSP TAC,ERRPTU
3553: ASCIZ /ILLEGAL FORMAT DUMP MODE COMMAND LIST/
3554: JRST EXCALP
3555:
3556: ERZIOS: TLZ IOS,GOBIT!LOSBIG!READB!WRITEB!ALTERB
3557: JRST DPOPJ
DSKSER page# 0037 next prev
3559:
3560:
3561:
3562:
3563:
3564:
3565:
3566: UDPINI: MOVSI TAC1,DVDSK
3567: MOVEI TAC,DSKDSP
3568: FOR @$ UNUM←1,UPACKS
3569: < SETZM UDP$UNUM$DD+DEVIOS
3570: IORM TAC1,UDP$UNUM$DD+DEVMOD
3571: IFN UNUM-1,<
3572: HRLI TAC,UDP$UNUM$DD
3573: MOVEM TAC,DEVSER+CAT(CAT(UDP,\<UNUM-1>),DD)
3574: >>
3575: HRLI TAC,PTRDDB
3576: MOVEM TAC,DEVSER+CAT(CAT(UDP,\UPACKS),DD)
3577: POPJ P,
3578:
3579:
3580: JRST CLRDDB
3581: JRST SETDDB
3582: JRST UDPINI
3583: JRST DHUNG
3584: ↑UDPDSP:JRST ERZIOS
3585: JRST ERZIOS
3586: JRST UUOERR
3587: JRST UUOERR
3588: JRST PASSIT
3589: JRST UUOERR
3590: JRST UDPOUT
3591: JRST UDPIN
3592: JRST UUOERR
3593: JRST UUOERR
3594: JRST UUOERR
3595: JRST PASSET
3596: POPJ P,
3597: POPJ P,
3598: JRST UUOERR
3599:
3600: UDPIN: MOVEI TAC1,IOPCHN
3601: JRST UDPSER
3602:
3603: UDPOUT: TLNN IOS,WRITEB
3604: JRST ENOENT
3605: MOVEI TAC1,DWRITE!IOPCHN
3606:
3607: UDPSER: MOVSM TAC1,TFRCTL(DDB)
3608: HRRZ AC1,UUO
3609: PUSHJ P,UADCK1
3610: ADDI AC1,1
3611: PUSHJ P,UADCK1
3612: XCTR XR,[SKIPL (UUO)]
3613: JRST ADRERR
3614: PUSHJ P,DMPCMD
3615: MOVEM TAC1,CORFAD(DDB)
3616: XCTR XR,[MOVE TAC1,(UUO)]
3617: LDB DAT,PSEGN
3618: JUMPE DAT,UDPS1
3619: HRRZ DAT,JBTADR(DAT)
3620: TRZN TAC1,400000
3621: UDPS1: HRRZ DAT,PROG
3622: ADDI TAC1,1(DAT)
3623: MOVEM TAC1,TFRIOW(DDB)
3624: XCTR XR,[HRRZ TAC1,1(UUO)]
3625: LDB DAT,PUNIT
3626: LDB DAT,[POINT 32,NCYLSH+FPACKS-1(DAT),31]
3627: IMULI DAT,BKPTRK*TRKCYL
3628: CAIL TAC1,(DAT)
3629: JRST UADRER
3630: MOVE TAC,JBTPRV(J)
3631: TLNN TAC,UDPPRV
3632: CAIE TAC1,-1(DAT)
3633: CAIA
3634: JRST UADRER
3635: LDB TAC,PUNIT
3636: ADD TAC1,BFSET(TAC)
3637: LSH TAC1,6
3638: XCTR XR,[HLRZ TAC,1(UUO)]
3639: CAILE TAC,RCPBLK
3640: JRST UADRER
3641: IOR TAC1,TAC
3642: MOVEM TAC1,TFRSEC(DDB)
3643: PUSHJ P,GOSET
3644: SETOM DDLOC(DDB)
3645: MOVEI DAT,TSTART
3646: PUSHJ P,UEWAIT
3647: SETZM DDLOC(DDB)
3648: JRST DPOPJ
DSKSER page# 0038 next prev
3650:
3651:
3652: GPASIN: MOVEI DAT,PASSIN
3653: PUSHJ P,NEWAIT
3654: TRNE IOS,IODERR!IODTER
3655: JRST EGARB1
3656: MOVE TAC,['PASS ']
3657: CAMN TAC,DSKDAT(DDB)
3658: CAME TAC,DSKDAT+1(DDB)
3659: JRST CPOPJ1
3660:
3661: LDB TAC,PUNIT
3662: MOVE AC1,BUFIOW
3663: MOVEM AC1,TFRIOW(DDB)
3664: MOVEI DAT,CHKSAT
3665: PUSHJ P,NEWAIT
3666: MOVE TAC,SYSBUF+IDSAT
3667: CAME TAC,['SATID ']
3668: POPJ P,
3669: JSP TAC,UUOMES
3670: ASCIZ /Illegal old-style access to new format UDP. UUO /
3671:
3672: PASSIT: MOVE TAC,JBTPRV(J)
3673: TLNE TAC,UDPPRV
3674: JRST PASSI1
3675: TLZ IOS,WRITEB
3676: PUSHJ P,GPASIN
3677: SKIPN TAC,DSKDAT+2(DDB)
3678: JRST PASSI1
3679: CAME TAC,['*SWAP*']
3680: XCTR XR,[CAMN TAC,(UUO)]
3681: PASSI1: TLOA IOS,WRITEB
3682: JRST EPROT
3683: JRST DPOPJ1
3684:
3685: PASSET: MOVE TAC,JBTPRV(J)
3686: TLNE TAC,UDPPRV
3687: JRST PASSE1
3688: TLZN IOS,WRITEB
3689: JRST ENOENT
3690: PUSHJ P,GPASIN
3691: SKIPA TAC,DSKDAT+2(DDB)
3692: JRST PASSE1
3693: CAMN TAC,['*SWAP*']
3694: JRST EPROT
3695: PASSE1: MOVE TAC,['PASS ']
3696: MOVEM TAC,DSKDAT(DDB)
3697: MOVEM TAC,DSKDAT+1(DDB)
3698: XCTR XR,[MOVE TAC,(UUO)]
3699: MOVEM TAC,DSKDAT+2(DDB)
3700: SETZM DSKDAT+3(DDB)
3701: HRRI TAC,DSKDAT+3(DDB)
3702: HRL TAC,TAC
3703: ADDI TAC,1
3704: BLT TAC,DSKDAT+SECSIZ-1(DDB)
3705: MOVEI DAT,PASOUT
3706: PUSHJ P,NEWAIT
3707: TRNE IOS,IODERR!IODTER
3708: JRST EGARB1
3709: JRST PASSI1
3710:
3711:
3712: PASOUT: SKIPA TAC,[DWRITE!IOPCHN]
3713: PASSIN: MOVEI TAC,IOPCHN
3714: MOVSM TAC,TFRCTL(DDB)
3715: MOVE TAC,[XWD -SECSIZ,DSKDAT]
3716: ADDI TAC,(DDB)
3717: MOVEM TAC,TFRIOW(DDB)
3718: LDB TAC1,PUNIT
3719: LDB TAC,[POINT 32,NCYLSH+FPACKS-1(TAC1),31]
3720: IMULI TAC,BKPTRK*TRKCYL
3721: SUBI TAC,1
3722: ADD TAC,BFSET(TAC1)
3723: LSH TAC,6
3724: MOVEM TAC,TFRSEC(DDB)
3725: JRST TSTART
3726:
3727: CHKSAT: MOVEI TAC,IOPCHN
3728: MOVSM TAC,TFRCTL(DDB)
3729: TLO IOS,SATOP
3730: LDB TAC,PUNIT
3731: MOVE TAC,BFSET(TAC)
3732: PUSHJ P,BK2SEC
3733: MOVEM TAC,TFRSEC(DDB)
3734: PUSHJ P,TSTART
3735: TLZ IOS,SATOP
3736: POPJ P,
EOF: DSKSER end-of-file. cnt=37